:py:mod:`airflow.providers.amazon.aws.transfers.glacier_to_gcs`
===============================================================

.. py:module:: airflow.providers.amazon.aws.transfers.glacier_to_gcs


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.transfers.glacier_to_gcs.GlacierToGCSOperator




.. py:class:: GlacierToGCSOperator(*, aws_conn_id = 'aws_default', gcp_conn_id = 'google_cloud_default', vault_name, bucket_name, object_name, gzip, chunk_size = 1024, delegate_to = None, google_impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Transfers data from Amazon Glacier to Google Cloud Storage

   .. note::
       Please be warn that GlacierToGCSOperator may depends on memory usage.
       Transferring big files may not working well.

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:GlacierToGCSOperator`

   :param aws_conn_id: The reference to the AWS connection details
   :param gcp_conn_id: The reference to the GCP connection details
   :param vault_name: the Glacier vault on which job is executed
   :param bucket_name: the Google Cloud Storage bucket where the data will be transferred
   :param object_name: the name of the object to check in the Google cloud
       storage bucket.
   :param gzip: option to compress local file or file data for upload
   :param chunk_size: size of chunk in bytes the that will downloaded from Glacier vault
   :param delegate_to: The account to impersonate using domain-wide delegation of authority,
       if any. For this to work, the service account making the request must have
       domain-wide delegation enabled.
   :param google_impersonation_chain: Optional Google service account to impersonate using
       short-term credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account (templated).

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['vault_name', 'bucket_name', 'object_name']

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



