:py:mod:`tests.system.providers.amazon.aws.example_quicksight`
==============================================================

.. py:module:: tests.system.providers.amazon.aws.example_quicksight


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


Functions
~~~~~~~~~

.. autoapisummary::

   tests.system.providers.amazon.aws.example_quicksight.get_aws_account_id
   tests.system.providers.amazon.aws.example_quicksight.create_quicksight_data_source
   tests.system.providers.amazon.aws.example_quicksight.create_quicksight_dataset
   tests.system.providers.amazon.aws.example_quicksight.delete_quicksight_data_source
   tests.system.providers.amazon.aws.example_quicksight.delete_dataset
   tests.system.providers.amazon.aws.example_quicksight.delete_ingestion



Attributes
~~~~~~~~~~

.. autoapisummary::

   tests.system.providers.amazon.aws.example_quicksight.DAG_ID
   tests.system.providers.amazon.aws.example_quicksight.sys_test_context_task
   tests.system.providers.amazon.aws.example_quicksight.SAMPLE_DATA_COLUMNS
   tests.system.providers.amazon.aws.example_quicksight.SAMPLE_DATA
   tests.system.providers.amazon.aws.example_quicksight.test_context
   tests.system.providers.amazon.aws.example_quicksight.test_run


.. py:data:: DAG_ID
   :annotation: = example_quicksight

   

.. py:data:: sys_test_context_task
   

   

.. py:data:: SAMPLE_DATA_COLUMNS
   :annotation: = ['Project', 'Year']

   

.. py:data:: SAMPLE_DATA
   :annotation: = Multiline-String

    .. raw:: html

        <details><summary>Show Value</summary>

    .. code-block:: text
        :linenos:

        'Airflow','2015'
            'OpenOffice','2012'
            'Subversion','2000'
            'NiFi','2006'


    .. raw:: html

        </details>

   

.. py:function:: get_aws_account_id()


.. py:function:: create_quicksight_data_source(aws_account_id, datasource_name, bucket, manifest_key)


.. py:function:: create_quicksight_dataset(aws_account_id, dataset_name, data_source_arn)


.. py:function:: delete_quicksight_data_source(aws_account_id, datasource_name)


.. py:function:: delete_dataset(aws_account_id, dataset_name)


.. py:function:: delete_ingestion(aws_account_id, dataset_name, ingestion_name)


.. py:data:: test_context
   

   

.. py:data:: test_run
   

   

