:py:mod:`airflow.providers.amazon.aws.hooks.quicksight`
=======================================================

.. py:module:: airflow.providers.amazon.aws.hooks.quicksight


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.hooks.quicksight.QuickSightHook




.. py:class:: QuickSightHook(*args, **kwargs)

   Bases: :py:obj:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   Interact with Amazon QuickSight.

   Additional arguments (such as ``aws_conn_id``) may be specified and
   are passed down to the underlying AwsBaseHook.
   .. seealso::
   :class:`~airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   .. py:attribute:: NON_TERMINAL_STATES
      

      

   .. py:attribute:: FAILED_STATES
      

      

   .. py:method:: sts_hook(self)


   .. py:method:: create_ingestion(self, data_set_id, ingestion_id, ingestion_type, wait_for_completion = True, check_interval = 30)

      Creates and starts a new SPICE ingestion for a dataset. Refreshes the SPICE datasets

      :param data_set_id:  ID of the dataset used in the ingestion.
      :param ingestion_id: ID for the ingestion.
      :param ingestion_type: Type of ingestion . "INCREMENTAL_REFRESH"|"FULL_REFRESH"
      :param wait_for_completion: if the program should keep running until job finishes
      :param check_interval: the time interval in seconds which the operator
          will check the status of QuickSight Ingestion
      :return: Returns descriptive information about the created data ingestion
          having Ingestion ARN, HTTP status, ingestion ID and ingestion status.
      :rtype: Dict


   .. py:method:: get_status(self, aws_account_id, data_set_id, ingestion_id)

      Get the current status of QuickSight Create Ingestion API.

      :param aws_account_id: An AWS Account ID
      :param data_set_id: QuickSight Data Set ID
      :param ingestion_id: QuickSight Ingestion ID
      :return: An QuickSight Ingestion Status
      :rtype: str


   .. py:method:: wait_for_state(self, aws_account_id, data_set_id, ingestion_id, target_state, check_interval)

      Check status of a QuickSight Create Ingestion API

      :param aws_account_id: An AWS Account ID
      :param data_set_id: QuickSight Data Set ID
      :param ingestion_id: QuickSight Ingestion ID
      :param target_state: Describes the QuickSight Job's Target State
      :param check_interval: the time interval in seconds which the operator
          will check the status of QuickSight Ingestion
      :return: response of describe_ingestion call after Ingestion is is done



