:py:mod:`airflow.providers.google.cloud.hooks.vertex_ai.dataset`
================================================================

.. py:module:: airflow.providers.google.cloud.hooks.vertex_ai.dataset

.. autoapi-nested-parse::

   This module contains a Google Cloud Vertex AI hook.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.hooks.vertex_ai.dataset.DatasetHook




.. py:class:: DatasetHook(gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None)

   Bases: :py:obj:`airflow.providers.google.common.hooks.base_google.GoogleBaseHook`

   Hook for Google Cloud Vertex AI Dataset APIs.

   .. py:method:: get_dataset_service_client(region = None)

      Returns DatasetServiceClient.


   .. py:method:: wait_for_operation(operation, timeout = None)

      Waits for long-lasting operation to complete.


   .. py:method:: extract_dataset_id(obj)
      :staticmethod:

      Returns unique id of the dataset.


   .. py:method:: create_dataset(project_id, region, dataset, retry = DEFAULT, timeout = None, metadata = ())

      Creates a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset:  Required. The Dataset to create.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: delete_dataset(project_id, region, dataset, retry = DEFAULT, timeout = None, metadata = ())

      Deletes a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset to delete.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: export_data(project_id, region, dataset, export_config, retry = DEFAULT, timeout = None, metadata = ())

      Exports data from a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset to export.
      :param export_config:  Required. The desired output location.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: get_annotation_spec(project_id, region, dataset, annotation_spec, read_mask = None, retry = DEFAULT, timeout = None, metadata = ())

      Gets an AnnotationSpec.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset.
      :param annotation_spec: The ID of the AnnotationSpec resource.
      :param read_mask: Optional. Mask specifying which fields to read.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: get_dataset(project_id, region, dataset, read_mask = None, retry = DEFAULT, timeout = None, metadata = ())

      Gets a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset to export.
      :param read_mask: Optional. Mask specifying which fields to read.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: import_data(project_id, region, dataset, import_configs, retry = DEFAULT, timeout = None, metadata = ())

      Imports data into a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset to import.
      :param import_configs:  Required. The desired input locations. The contents of all input locations
          will be imported in one batch.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: list_annotations(project_id, region, dataset, data_item, filter = None, page_size = None, page_token = None, read_mask = None, order_by = None, retry = DEFAULT, timeout = None, metadata = ())

      Lists Annotations belongs to a data item

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset.
      :param data_item: Required. The ID of the DataItem to list Annotations from.
      :param filter: The standard list filter.
      :param page_size: The standard list page size.
      :param page_token: The standard list page token.
      :param read_mask: Mask specifying which fields to read.
      :param order_by: A comma-separated list of fields to order by, sorted in ascending order. Use "desc"
          after a field name for descending.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: list_data_items(project_id, region, dataset, filter = None, page_size = None, page_token = None, read_mask = None, order_by = None, retry = DEFAULT, timeout = None, metadata = ())

      Lists DataItems in a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset: Required. The ID of the Dataset.
      :param filter: The standard list filter.
      :param page_size: The standard list page size.
      :param page_token: The standard list page token.
      :param read_mask: Mask specifying which fields to read.
      :param order_by: A comma-separated list of fields to order by, sorted in ascending order. Use "desc"
          after a field name for descending.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: list_datasets(project_id, region, filter = None, page_size = None, page_token = None, read_mask = None, order_by = None, retry = DEFAULT, timeout = None, metadata = ())

      Lists Datasets in a Location.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param filter: The standard list filter.
      :param page_size: The standard list page size.
      :param page_token: The standard list page token.
      :param read_mask: Mask specifying which fields to read.
      :param order_by: A comma-separated list of fields to order by, sorted in ascending order. Use "desc"
          after a field name for descending.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.


   .. py:method:: update_dataset(project_id, region, dataset_id, dataset, update_mask, retry = DEFAULT, timeout = None, metadata = ())

      Updates a Dataset.

      :param project_id: Required. The ID of the Google Cloud project that the service belongs to.
      :param region: Required. The ID of the Google Cloud region that the service belongs to.
      :param dataset_id: Required. The ID of the Dataset.
      :param dataset:  Required. The Dataset which replaces the resource on the server.
      :param update_mask:  Required. The update mask applies to the resource.
      :param retry: Designation of what errors, if any, should be retried.
      :param timeout: The timeout for this request.
      :param metadata: Strings which should be sent along with the request as metadata.



