SubscriptionOptions

class aws_cdk.aws_sns.SubscriptionOptions(*, endpoint, protocol, dead_letter_queue=None, delivery_policy=None, filter_policy=None, filter_policy_with_message_body=None, raw_message_delivery=None, region=None, subscription_role_arn=None)

Bases: object

Options for creating a new subscription.

Parameters:
  • endpoint (str) – The subscription endpoint. The meaning of this value depends on the value for ‘protocol’.

  • protocol (SubscriptionProtocol) – What type of subscription to add.

  • dead_letter_queue (Optional[IQueue]) – Queue to be used as dead letter queue. If not passed no dead letter queue is enabled. Default: - No dead letter queue enabled.

  • delivery_policy (Union[DeliveryPolicy, Dict[str, Any], None]) – The delivery policy. Default: - if the initial delivery of the message fails, three retries with a delay between failed attempts set at 20 seconds

  • filter_policy (Optional[Mapping[str, SubscriptionFilter]]) – The filter policy. Default: - all messages are delivered

  • filter_policy_with_message_body (Optional[Mapping[str, FilterOrPolicy]]) – The filter policy that is applied on the message body. To apply a filter policy to the message attributes, use filterPolicy. A maximum of one of filterPolicyWithMessageBody and filterPolicy may be used. Default: - all messages are delivered

  • raw_message_delivery (Optional[bool]) – true if raw message delivery is enabled for the subscription. Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints. For more information, see GetSubscriptionAttributes in the Amazon Simple Notification Service API Reference. Default: false

  • region (Optional[str]) – The region where the topic resides, in the case of cross-region subscriptions. Default: - the region where the CloudFormation stack is being deployed.

  • subscription_role_arn (Optional[str]) – Arn of role allowing access to firehose delivery stream. Required for a firehose subscription protocol. Default: - No subscription role is provided

ExampleMetadata:

fixture=_generated

Example:

# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
from aws_cdk import aws_sns as sns
from aws_cdk import aws_sqs as sqs

# filter_or_policy: sns.FilterOrPolicy
# queue: sqs.Queue
# subscription_filter: sns.SubscriptionFilter

subscription_options = sns.SubscriptionOptions(
    endpoint="endpoint",
    protocol=sns.SubscriptionProtocol.HTTP,

    # the properties below are optional
    dead_letter_queue=queue,
    delivery_policy=sns.DeliveryPolicy(
        healthy_retry_policy=sns.HealthyRetryPolicy(
            backoff_function=sns.BackoffFunction.ARITHMETIC,
            max_delay_target=cdk.Duration.minutes(30),
            min_delay_target=cdk.Duration.minutes(30),
            num_max_delay_retries=123,
            num_min_delay_retries=123,
            num_no_delay_retries=123,
            num_retries=123
        ),
        request_policy=sns.RequestPolicy(
            header_content_type="headerContentType"
        ),
        throttle_policy=sns.ThrottlePolicy(
            max_receives_per_second=123
        )
    ),
    filter_policy={
        "filter_policy_key": subscription_filter
    },
    filter_policy_with_message_body={
        "filter_policy_with_message_body_key": filter_or_policy
    },
    raw_message_delivery=False,
    region="region",
    subscription_role_arn="subscriptionRoleArn"
)

Attributes

dead_letter_queue

Queue to be used as dead letter queue.

If not passed no dead letter queue is enabled.

Default:
  • No dead letter queue enabled.

delivery_policy

The delivery policy.

Default:
  • if the initial delivery of the message fails, three retries with a delay between failed attempts set at 20 seconds

endpoint

The subscription endpoint.

The meaning of this value depends on the value for ‘protocol’.

filter_policy

The filter policy.

Default:
  • all messages are delivered

filter_policy_with_message_body

The filter policy that is applied on the message body.

To apply a filter policy to the message attributes, use filterPolicy. A maximum of one of filterPolicyWithMessageBody and filterPolicy may be used.

Default:
  • all messages are delivered

protocol

What type of subscription to add.

raw_message_delivery

true if raw message delivery is enabled for the subscription.

Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints. For more information, see GetSubscriptionAttributes in the Amazon Simple Notification Service API Reference.

Default:

false

region

The region where the topic resides, in the case of cross-region subscriptions.

Default:
  • the region where the CloudFormation stack is being deployed.

Link:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region

subscription_role_arn

Arn of role allowing access to firehose delivery stream.

Required for a firehose subscription protocol.

Default:
  • No subscription role is provided