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

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

.. autoapi-nested-parse::

   Publish message to SNS queue



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.operators.sns.SnsPublishOperator




.. py:class:: SnsPublishOperator(*, target_arn, message, aws_conn_id = 'aws_default', subject = None, message_attributes = None, **kwargs)

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

   Publish a message to Amazon SNS.

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

   :param aws_conn_id: aws connection to use
   :param target_arn: either a TopicArn or an EndpointArn
   :param message: the default message you want to send (templated)
   :param subject: the message subject you want to send (templated)
   :param message_attributes: the message attributes you want to send as a flat dict (data type will be
       determined automatically)

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['message', 'subject', 'message_attributes']

      

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

      

   .. py:attribute:: template_fields_renderers
      

      

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



