:py:mod:`airflow.providers.google.cloud.hooks.cloud_storage_transfer_service`
=============================================================================

.. py:module:: airflow.providers.google.cloud.hooks.cloud_storage_transfer_service

.. autoapi-nested-parse::

   This module contains a Google Storage Transfer Service Hook.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.GcpTransferJobsStatus
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.GcpTransferOperationStatus
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.CloudDataTransferServiceHook



Functions
~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.gen_job_name



Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.log
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TIME_TO_SLEEP_IN_SECONDS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.ACCESS_KEY_ID
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.ALREADY_EXISTING_IN_SINK
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.AWS_ACCESS_KEY
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.AWS_S3_DATA_SOURCE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.BODY
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.BUCKET_NAME
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.COUNTERS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.DAY
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.DESCRIPTION
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.FILTER
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.FILTER_JOB_NAMES
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.FILTER_PROJECT_ID
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.GCS_DATA_SINK
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.GCS_DATA_SOURCE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.HOURS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.HTTP_DATA_SOURCE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.JOB_NAME
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.LIST_URL
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.METADATA
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.MINUTES
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.MONTH
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.NAME
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.OBJECT_CONDITIONS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.OPERATIONS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.PATH
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.PROJECT_ID
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.SCHEDULE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.SCHEDULE_END_DATE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.SCHEDULE_START_DATE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.SECONDS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.SECRET_ACCESS_KEY
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.START_TIME_OF_DAY
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.STATUS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.STATUS1
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_JOB
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_JOBS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_JOB_FIELD_MASK
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_OPERATIONS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_OPTIONS
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.TRANSFER_SPEC
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.YEAR
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.ALREADY_EXIST_CODE
   airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.NEGATIVE_STATUSES


.. py:data:: log
   

   

.. py:data:: TIME_TO_SLEEP_IN_SECONDS
   :annotation: = 10

   

.. py:class:: GcpTransferJobsStatus

   Class with Google Cloud Transfer jobs statuses.

   .. py:attribute:: ENABLED
      :annotation: = ENABLED

      

   .. py:attribute:: DISABLED
      :annotation: = DISABLED

      

   .. py:attribute:: DELETED
      :annotation: = DELETED

      


.. py:class:: GcpTransferOperationStatus

   Class with Google Cloud Transfer operations statuses.

   .. py:attribute:: IN_PROGRESS
      :annotation: = IN_PROGRESS

      

   .. py:attribute:: PAUSED
      :annotation: = PAUSED

      

   .. py:attribute:: SUCCESS
      :annotation: = SUCCESS

      

   .. py:attribute:: FAILED
      :annotation: = FAILED

      

   .. py:attribute:: ABORTED
      :annotation: = ABORTED

      


.. py:data:: ACCESS_KEY_ID
   :annotation: = accessKeyId

   

.. py:data:: ALREADY_EXISTING_IN_SINK
   :annotation: = overwriteObjectsAlreadyExistingInSink

   

.. py:data:: AWS_ACCESS_KEY
   :annotation: = awsAccessKey

   

.. py:data:: AWS_S3_DATA_SOURCE
   :annotation: = awsS3DataSource

   

.. py:data:: BODY
   :annotation: = body

   

.. py:data:: BUCKET_NAME
   :annotation: = bucketName

   

.. py:data:: COUNTERS
   :annotation: = counters

   

.. py:data:: DAY
   :annotation: = day

   

.. py:data:: DESCRIPTION
   :annotation: = description

   

.. py:data:: FILTER
   :annotation: = filter

   

.. py:data:: FILTER_JOB_NAMES
   :annotation: = job_names

   

.. py:data:: FILTER_PROJECT_ID
   :annotation: = project_id

   

.. py:data:: GCS_DATA_SINK
   :annotation: = gcsDataSink

   

.. py:data:: GCS_DATA_SOURCE
   :annotation: = gcsDataSource

   

.. py:data:: HOURS
   :annotation: = hours

   

.. py:data:: HTTP_DATA_SOURCE
   :annotation: = httpDataSource

   

.. py:data:: JOB_NAME
   :annotation: = name

   

.. py:data:: LIST_URL
   :annotation: = list_url

   

.. py:data:: METADATA
   :annotation: = metadata

   

.. py:data:: MINUTES
   :annotation: = minutes

   

.. py:data:: MONTH
   :annotation: = month

   

.. py:data:: NAME
   :annotation: = name

   

.. py:data:: OBJECT_CONDITIONS
   :annotation: = object_conditions

   

.. py:data:: OPERATIONS
   :annotation: = operations

   

.. py:data:: PATH
   :annotation: = path

   

.. py:data:: PROJECT_ID
   :annotation: = projectId

   

.. py:data:: SCHEDULE
   :annotation: = schedule

   

.. py:data:: SCHEDULE_END_DATE
   :annotation: = scheduleEndDate

   

.. py:data:: SCHEDULE_START_DATE
   :annotation: = scheduleStartDate

   

.. py:data:: SECONDS
   :annotation: = seconds

   

.. py:data:: SECRET_ACCESS_KEY
   :annotation: = secretAccessKey

   

.. py:data:: START_TIME_OF_DAY
   :annotation: = startTimeOfDay

   

.. py:data:: STATUS
   :annotation: = status

   

.. py:data:: STATUS1
   :annotation: = status

   

.. py:data:: TRANSFER_JOB
   :annotation: = transfer_job

   

.. py:data:: TRANSFER_JOBS
   :annotation: = transferJobs

   

.. py:data:: TRANSFER_JOB_FIELD_MASK
   :annotation: = update_transfer_job_field_mask

   

.. py:data:: TRANSFER_OPERATIONS
   :annotation: = transferOperations

   

.. py:data:: TRANSFER_OPTIONS
   :annotation: = transfer_options

   

.. py:data:: TRANSFER_SPEC
   :annotation: = transferSpec

   

.. py:data:: YEAR
   :annotation: = year

   

.. py:data:: ALREADY_EXIST_CODE
   :annotation: = 409

   

.. py:data:: NEGATIVE_STATUSES
   

   

.. py:function:: gen_job_name(job_name)

   Adds unique suffix to job name. If suffix already exists, updates it.
   Suffix — current timestamp

   :param job_name:
   :return: job_name with suffix


.. py:class:: CloudDataTransferServiceHook(api_version = 'v1', 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 Storage Transfer Service.

   All the methods in the hook where project_id is used must be called with
   keyword arguments rather than positional.

   .. py:method:: get_conn(self)

      Retrieves connection to Google Storage Transfer service.

      :return: Google Storage Transfer service object
      :rtype: dict


   .. py:method:: create_transfer_job(self, body)

      Creates a transfer job that runs periodically.

      :param body: (Required) A request body, as described in
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/patch#request-body
      :return: transfer job.
          See:
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs#TransferJob
      :rtype: dict


   .. py:method:: get_transfer_job(self, job_name, project_id)

      Gets the latest state of a long-running operation in Google Storage
      Transfer Service.

      :param job_name: (Required) Name of the job to be fetched
      :param project_id: (Optional) the ID of the project that owns the Transfer
          Job. If set to None or missing, the default project_id from the Google Cloud
          connection is used.
      :return: Transfer Job
      :rtype: dict


   .. py:method:: list_transfer_job(self, request_filter = None, **kwargs)

      Lists long-running operations in Google Storage Transfer
      Service that match the specified filter.

      :param request_filter: (Required) A request filter, as described in
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/list#body.QUERY_PARAMETERS.filter
      :return: List of Transfer Jobs
      :rtype: list[dict]


   .. py:method:: enable_transfer_job(self, job_name, project_id)

      New transfers will be performed based on the schedule.

      :param job_name: (Required) Name of the job to be updated
      :param project_id: (Optional) the ID of the project that owns the Transfer
          Job. If set to None or missing, the default project_id from the Google Cloud
          connection is used.
      :return: If successful, TransferJob.
      :rtype: dict


   .. py:method:: update_transfer_job(self, job_name, body)

      Updates a transfer job that runs periodically.

      :param job_name: (Required) Name of the job to be updated
      :param body: A request body, as described in
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/patch#request-body
      :return: If successful, TransferJob.
      :rtype: dict


   .. py:method:: delete_transfer_job(self, job_name, project_id)

      Deletes a transfer job. This is a soft delete. After a transfer job is
      deleted, the job and all the transfer executions are subject to garbage
      collection. Transfer jobs become eligible for garbage collection
      30 days after soft delete.

      :param job_name: (Required) Name of the job to be deleted
      :param project_id: (Optional) the ID of the project that owns the Transfer
          Job. If set to None or missing, the default project_id from the Google Cloud
          connection is used.
      :rtype: None


   .. py:method:: cancel_transfer_operation(self, operation_name)

      Cancels an transfer operation in Google Storage Transfer Service.

      :param operation_name: Name of the transfer operation.
      :rtype: None


   .. py:method:: get_transfer_operation(self, operation_name)

      Gets an transfer operation in Google Storage Transfer Service.

      :param operation_name: (Required) Name of the transfer operation.
      :return: transfer operation
          See:
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/Operation
      :rtype: dict


   .. py:method:: list_transfer_operations(self, request_filter = None, **kwargs)

      Gets an transfer operation in Google Storage Transfer Service.

      :param request_filter: (Required) A request filter, as described in
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/list#body.QUERY_PARAMETERS.filter
          With one additional improvement:

          * project_id is optional if you have a project id defined
            in the connection
            See: :doc:`/connections/gcp`

      :return: transfer operation
      :rtype: list[dict]


   .. py:method:: pause_transfer_operation(self, operation_name)

      Pauses an transfer operation in Google Storage Transfer Service.

      :param operation_name: (Required) Name of the transfer operation.
      :rtype: None


   .. py:method:: resume_transfer_operation(self, operation_name)

      Resumes an transfer operation in Google Storage Transfer Service.

      :param operation_name: (Required) Name of the transfer operation.
      :rtype: None


   .. py:method:: wait_for_transfer_job(self, job, expected_statuses = None, timeout = None)

      Waits until the job reaches the expected state.

      :param job: Transfer job
          See:
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs#TransferJob
      :param expected_statuses: State that is expected
          See:
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferOperations#Status
      :param timeout: Time in which the operation must end in seconds. If not specified, defaults to 60
          seconds.
      :rtype: None


   .. py:method:: operations_contain_expected_statuses(operations, expected_statuses)
      :staticmethod:

      Checks whether the operation list has an operation with the
      expected status, then returns true
      If it encounters operations in FAILED or ABORTED state
      throw :class:`airflow.exceptions.AirflowException`.

      :param operations: (Required) List of transfer operations to check.
      :param expected_statuses: (Required) status that is expected
          See:
          https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferOperations#Status
      :return: If there is an operation with the expected state
          in the operation list, returns true,
      :raises: airflow.exceptions.AirflowException If it encounters operations
          with a state in the list,
      :rtype: bool



