: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']

      

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

      

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

      

   .. 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.



.. 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(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.



