:py:mod:`airflow.providers.amazon.aws.sensors.glacier`
======================================================

.. py:module:: airflow.providers.amazon.aws.sensors.glacier


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.sensors.glacier.JobStatus
   airflow.providers.amazon.aws.sensors.glacier.GlacierJobOperationSensor




.. py:class:: JobStatus

   Bases: :py:obj:`enum.Enum`

   Glacier jobs description

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

      

   .. py:attribute:: SUCCEEDED
      :annotation: = Succeeded

      


.. py:class:: GlacierJobOperationSensor(*, aws_conn_id = 'aws_default', vault_name, job_id, poke_interval = 60 * 20, mode = 'reschedule', **kwargs)

   Bases: :py:obj:`airflow.sensors.base.BaseSensorOperator`

   Glacier sensor for checking job state. This operator runs only in reschedule mode.

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

   :param aws_conn_id: The reference to the AWS connection details
   :param vault_name: name of Glacier vault on which job is executed
   :param job_id: the job ID was returned by retrieve_inventory()
   :param poke_interval: Time in seconds that the job should wait in
       between each tries
   :param mode: How the sensor operates.
       Options are: ``{ poke | reschedule }``, default is ``poke``.
       When set to ``poke`` the sensor is taking up a worker slot for its
       whole execution time and sleeps between pokes. Use this mode if the
       expected runtime of the sensor is short or if a short poke interval
       is required. Note that the sensor will hold onto a worker slot and
       a pool slot for the duration of the sensor's runtime in this mode.
       When set to ``reschedule`` the sensor task frees the worker slot when
       the criteria is not yet met and it's rescheduled at a later time. Use
       this mode if the time before the criteria is met is expected to be
       quite long. The poke interval should be more than one minute to
       prevent too much load on the scheduler.

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

      

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

      Function that the sensors defined while deriving this class should
      override.



