TopicSubscriptionConfig

class aws_cdk.aws_sns.TopicSubscriptionConfig(*, endpoint, protocol, dead_letter_queue=None, filter_policy=None, filter_policy_with_message_body=None, raw_message_delivery=None, region=None, subscription_role_arn=None, subscriber_id, subscriber_scope=None, subscription_dependency=None)

Bases: SubscriptionOptions

Subscription configuration.

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.

  • 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

  • subscriber_id (str) – The id of the SNS subscription resource created under scope. In most cases, it is recommended to use the uniqueId of the topic you are subscribing to.

  • subscriber_scope (Optional[Construct]) – The scope in which to create the SNS subscription resource. Normally you’d want the subscription to be created on the consuming stack because the topic is usually referenced by the consumer’s resource policy (e.g. SQS queue policy). Otherwise, it will cause a cyclic reference. If this is undefined, the subscription will be created on the topic’s stack. Default: - use the topic as the scope of the subscription, in which case subscriberId must be defined.

  • subscription_dependency (Optional[IDependable]) – The resources that need to be created before the subscription can be safely created. For example for SQS subscription, the subscription needs to have a dependency on the SQS queue policy in order for the subscription to successfully deliver messages. Default: - empty list

ExampleMetadata:

fixture=_generated

Example:

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

# construct: constructs.Construct
# dependable: constructs.IDependable
# filter_or_policy: sns.FilterOrPolicy
# queue: sqs.Queue
# subscription_filter: sns.SubscriptionFilter

topic_subscription_config = sns.TopicSubscriptionConfig(
    endpoint="endpoint",
    protocol=sns.SubscriptionProtocol.HTTP,
    subscriber_id="subscriberId",

    # the properties below are optional
    dead_letter_queue=queue,
    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",
    subscriber_scope=construct,
    subscription_dependency=dependable,
    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.

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

subscriber_id

The id of the SNS subscription resource created under scope.

In most cases, it is recommended to use the uniqueId of the topic you are subscribing to.

subscriber_scope

The scope in which to create the SNS subscription resource.

Normally you’d want the subscription to be created on the consuming stack because the topic is usually referenced by the consumer’s resource policy (e.g. SQS queue policy). Otherwise, it will cause a cyclic reference.

If this is undefined, the subscription will be created on the topic’s stack.

Default:
  • use the topic as the scope of the subscription, in which case subscriberId must be defined.

subscription_dependency

The resources that need to be created before the subscription can be safely created.

For example for SQS subscription, the subscription needs to have a dependency on the SQS queue policy in order for the subscription to successfully deliver messages.

Default:
  • empty list

subscription_role_arn

Arn of role allowing access to firehose delivery stream.

Required for a firehose subscription protocol.

Default:
  • No subscription role is provided