import { Value } from '../../cloudformation/Value';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The <code>AWS::SNS::Subscription</code> resource subscribes an endpoint to an Amazon SNS topic. For a subscription to be created, the owner of the endpoint must confirm the subscription.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html">the AWS Docs</a>
*/
export type Subscription = AwsResource<'AWS::SNS::Subscription', SubscriptionProperties>;
export declare function subscription(subscriptionProps: SubscriptionProperties): Subscription;
/**
  The <code>AWS::SNS::Subscription</code> resource subscribes an endpoint to an Amazon SNS topic. For a subscription to be created, the owner of the endpoint must confirm the subscription.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html">the AWS Docs</a>
*/
export interface SubscriptionProperties {
    /** <code>DeliveryPolicy</code>  <a name="cfn-sns-subscription-deliverypolicy"></a>
  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 <code>[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)</code> in the
  Amazon SNS API Reference: nd <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html">Message delivery retries</a> in the
  Amazon SNS Developer Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    deliveryPolicy?: Value<any>;
    /** <code>Endpoint</code>  <a name="cfn-sns-endpoint"></a>
  The subscription’s endpoint. The endpoint value depends on the protocol that you specify. For more information, see the <code>Endpoint</code> parameter of the <code>[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)</code> action in the
  Amazon SNS API Reference: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    endpoint?: Value<string>;
    /** <code>FilterPolicy</code>  <a name="cfn-sns-subscription-filterpolicy"></a>
  The filter policy JSON assigned to the subscription. Enables the subscriber to filter out unwanted messages. For more information, see <code>[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)</code> in the
  Amazon SNS API Reference: nd <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html">Message filtering</a> in the
  Amazon SNS Developer Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    filterPolicy?: Value<any>;
    /** <p> */
    filterPolicyScope?: Value<string>;
    /** <code>Protocol</code>  <a name="cfn-sns-protocol"></a>
  The subscription’s protocol. For more information, see the <code>Protocol</code> parameter of the <code>[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)</code> action in the
  Amazon SNS API Reference: br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    protocol: Value<string>;
    /** <code>RawMessageDelivery</code>  <a name="cfn-sns-subscription-rawmessagedelivery"></a>
  When set to <code>true</code>, 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 <code>[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)</code> in the
  Amazon SNS API Reference: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    rawMessageDelivery?: Value<boolean>;
    /** <code>RedrivePolicy</code>  <a name="cfn-sns-subscription-redrivepolicy"></a>
  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.<br />
  For more information about the redrive policy and dead-letter queues, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Amazon SQS dead-letter queues</a> in the
  Amazon SQS Developer Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    redrivePolicy?: Value<any>;
    /** <p> */
    region?: Value<string>;
    /** <p> */
    subscriptionRoleArn?: Value<string>;
    /** <code>TopicArn</code>  <a name="topicarn"></a>
  The ARN of the topic to subscribe to.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    topicArn: Value<string>;
}
