# CfnSubscriptionProps

Properties for defining a `CfnSubscription`.

Extends: CfnSubscriptionProps
Used as props by: CfnSubscription

- Source: Generated code
- Type last changed: v2.227.0 · 21 Nov 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_sns as sns } from 'aws-cdk-lib';

declare const deliveryPolicy: any;
declare const filterPolicy: any;
declare const redrivePolicy: any;
declare const replayPolicy: any;
const cfnSubscriptionProps: sns.CfnSubscriptionProps = {
  protocol: 'protocol',
  topicArn: 'topicArn',

  // the properties below are optional
  deliveryPolicy: deliveryPolicy,
  endpoint: 'endpoint',
  filterPolicy: filterPolicy,
  filterPolicyScope: 'filterPolicyScope',
  rawMessageDelivery: false,
  redrivePolicy: redrivePolicy,
  region: 'region',
  replayPolicy: replayPolicy,
  subscriptionRoleArn: 'subscriptionRoleArn',
};
```

## Properties

- `deliveryPolicy`: any — The delivery policy JSON assigned to the subscription.

  Enables the subscriber to define the message delivery retry strategy in the case of an HTTP/S endpoint subscribed to the topic. For more information, see `[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)` in the *Amazon  API Reference* and [Message delivery retries](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html) in the *Amazon  Developer Guide* .

- `endpoint`: string | [IDeliveryStreamRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_kinesisfirehose.IDeliveryStreamRef.html) | [IFunctionRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_lambda.IFunctionRef.html) | [IVersionRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_lambda.IVersionRef.html) | [IQueueRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_sqs.IQueueRef.html) — The subscription's endpoint.

  The endpoint value depends on the protocol that you specify. For more information, see the `Endpoint` parameter of the `[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)` action in the *Amazon  API Reference* .

- `filterPolicy`: any — The filter policy JSON assigned to the subscription.

  Enables the subscriber to filter out unwanted messages. For more information, see `[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)` in the *Amazon  API Reference* and [Message filtering](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) in the *Amazon  Developer Guide* .

- `filterPolicyScope`: string — This attribute lets you choose the filtering scope by using one of the following string value types:.

  - `MessageAttributes` (default) - The filter is applied on the message attributes.
  - `MessageBody` - The filter is applied on the message body.

  > `Null` is not a valid value for `FilterPolicyScope` . To delete a filter policy, delete the `FilterPolicy` property but keep `FilterPolicyScope` property as is.

- `protocol`: string (required) — The subscription's protocol.

  For more information, see the `Protocol` parameter of the `[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)` action in the *Amazon  API Reference* .

- `rawMessageDelivery`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — When set to `true` , enables raw message delivery.

  Raw messages don't contain any JSON formatting and can be sent to Amazon SQS and HTTP/S endpoints. For more information, see `[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)` in the *Amazon  API Reference* .

- `redrivePolicy`: any — When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue.

  Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

  For more information about the redrive policy and dead-letter queues, see [Amazon SQS dead-letter queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) in the *Amazon SQS Developer Guide* .

- `region`: string — For cross-region subscriptions, the region in which the topic resides.

  If no region is specified, CloudFormation uses the region of the caller as the default.

  If you perform an update operation that only updates the `Region` property of a `AWS::SNS::Subscription` resource, that operation will fail unless you are either:

  - Updating the `Region` from `NULL` to the caller region.
  - Updating the `Region` from the caller region to `NULL` .

- `replayPolicy`: any — Specifies whether Amazon resends the notification to the subscription when a message's attribute changes.

- `subscriptionRoleArn`: string | [IRoleRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_iam.IRoleRef.html) — This property applies only to Amazon Data Firehose delivery stream subscriptions.

  Specify the ARN of the IAM role that has the following:

  - Permission to write to the Amazon Data Firehose delivery stream
  - Amazon  listed as a trusted entity

  Specifying a valid ARN for this attribute is required for Firehose delivery stream subscriptions. For more information, see [Fanout to Amazon Data Firehose delivery streams](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html) in the *Amazon  Developer Guide.*

- `topicArn`: string | [ITopicRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_sns.ITopicRef.html) (required) — The ARN of the topic to subscribe to.
