code: def recreate_dataset(
      dataset: str,
      priority: Priority,
      hf_endpoint: str,
      blocked_datasets: list[str],
      hf_token: Optional[str] = None,
      storage_clients: Optional[list[StorageClient]] = None,
  ) -> RecreateDatasetReport:
      delete_dataset(dataset=dataset, storage_clients=storage_clients)
      # create the jobs to backfill the dataset, if supported
      update_dataset(
          dataset=dataset,
          blocked_datasets=blocked_datasets,
          hf_endpoint=hf_endpoint,
          hf_token=hf_token,
          priority=priority,
          storage_clients=storage_clients,
      )
      return RecreateDatasetReport(status="ok", dataset=dataset)
  
file_path: datasets-server/services/admin/src/admin/routes/recreate_dataset.py
imports: import logging
  from typing import Optional, TypedDict
  from libapi.exceptions import InvalidParameterError, UnexpectedApiError
  from libapi.request import get_request_parameter
  from libapi.utils import Endpoint, get_json_api_error_response, get_json_ok_response
  from libcommon.exceptions import CustomError
  from libcommon.operations import delete_dataset, update_dataset
  from libcommon.storage_client import StorageClient
  from libcommon.utils import Priority
  from starlette.requests import Request
  from starlette.responses import Response
  from admin.authentication import auth_check
label_desc: Use image node_id 1 for calling a global function with example usage: recreate_dataset(dataset, priority, hf_endpoint, blocked_datasets, hf_token, storage_clients) and returns: RecreateDatasetReport