:py:mod:`airflow.providers.amazon.aws.operators.cloud_formation`
================================================================

.. py:module:: airflow.providers.amazon.aws.operators.cloud_formation

.. autoapi-nested-parse::

   This module contains CloudFormation create/delete stack operators.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.operators.cloud_formation.CloudFormationCreateStackOperator
   airflow.providers.amazon.aws.operators.cloud_formation.CloudFormationDeleteStackOperator




.. py:class:: CloudFormationCreateStackOperator(*, stack_name, cloudformation_parameters, aws_conn_id = 'aws_default', **kwargs)

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

   An operator that creates a CloudFormation stack.

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


   :param stack_name: stack name (templated)
   :param cloudformation_parameters: parameters to be passed to CloudFormation.
   :param aws_conn_id: aws connection to uses

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['stack_name', 'cloudformation_parameters']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = []

      

   .. py:attribute:: ui_color
      :annotation: = #6b9659

      

   .. py:method:: execute(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.



.. py:class:: CloudFormationDeleteStackOperator(*, stack_name, cloudformation_parameters = None, aws_conn_id = 'aws_default', **kwargs)

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

   An operator that deletes a CloudFormation stack.

   :param stack_name: stack name (templated)
   :param cloudformation_parameters: parameters to be passed to CloudFormation.

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

   :param aws_conn_id: aws connection to uses

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['stack_name']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = []

      

   .. py:attribute:: ui_color
      :annotation: = #1d472b

      

   .. py:attribute:: ui_fgcolor
      :annotation: = #FFF

      

   .. py:method:: execute(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.



