import { Value } from '../../cloudformation/Value';
import { SubscriptionProps } from './topic/SubscriptionProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type TopicAttributes = {
    TopicArn: Attribute<string>;
    TopicName: Attribute<string>;
};
export type Topic = AwsResource<'AWS::SNS::Topic', TopicProperties, TopicAttributes>;
/**
  The <code>AWS::SNS::Topic</code> resource creates a topic to which notifications can be published.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html">the AWS Docs</a>
*/
export declare function topic(topicProps?: TopicProperties): Topic;
/**
  The <code>AWS::SNS::Topic</code> resource creates a topic to which notifications can be published.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html">the AWS Docs</a>
*/
export interface TopicProperties {
    /** <code>SignatureVersion</code>  <a name="cfn-sns-topic-signatureversion"></a>
  The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. By default, <code>SignatureVersion</code> is set to <code>1</code>.<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> */
    signatureVersion?: Value<string>;
    /** <code>KmsMasterKeyId</code>  <a name="cfn-sns-topic-kmsmasterkeyid"></a>
  The ID of an AWS managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms">Key terms</a>. For more examples, see <code>[KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)</code> in the
  AWS Key Management Service API Reference: br />
  This property applies only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html">server-side-encryption</a>.<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> */
    kmsMasterKeyId?: Value<string>;
    /** <code>TracingConfig</code>  <a name="cfn-sns-topic-tracingconfig"></a>
  Tracing mode of an Amazon SNS topic. By default <code>TracingConfig</code> is set to <code>PassThrough</code>, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to <code>Active</code>, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. Only supported on standard topics.<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> */
    tracingConfig?: Value<string>;
    /** <code>DisplayName</code>  <a name="cfn-sns-topic-displayname"></a>
  The display name to use for an Amazon SNS topic with SMS subscriptions. The display name must be maximum 100 characters long, including hyphens (-), underscores (_), spaces, and tabs.<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> */
    displayName?: Value<string>;
    /** <code>FifoTopic</code>  <a name="cfn-sns-topic-fifotopic"></a>
  Set to true to create a FIFO topic.<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> */
    fifoTopic?: Value<boolean>;
    /** <p>When you set  */
    contentBasedDeduplication?: Value<boolean>;
    /** <code>Subscription</code>  <a name="cfn-sns-topic-subscription"></a>
  The Amazon SNS subscriptions (endpoints) for this topic.<br />
  If you specify the <code>Subscription</code> property in the <code>AWS::SNS::Topic</code> resource and it creates an associated subscription resource, the associated subscription is not deleted when the <code>AWS::SNS::Topic</code> resource is deleted.
  
  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> */
    subscription?: SubscriptionProps[];
    /** <code>Tags</code>  <a name="cfn-sns-topic-tags"></a>
  The list of tags to add to a new topic.<br />
  To be able to tag a topic on creation, you must have the <code>sns:CreateTopic</code> and <code>sns:TagResource</code> permissions.
  
  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> */
    tags?: Tag[];
    /** <code>DataProtectionPolicy</code>  <a name="cfn-sns-topic-dataprotectionpolicy"></a>
  The body of the policy document you want to use for this topic.<br />
  You can only add one policy per topic.<br />
  The policy must be in JSON string format.<br />
  Length Constraints: Maximum length of 30,720.<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> */
    dataProtectionPolicy?: Value<any>;
    /**  */
    archivePolicy?: Value<any>;
    /** <code>TopicName</code>  <a name="cfn-sns-topic-topicname"></a>
  The name of the topic you want to create. Topic names must include only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. FIFO topic names must end with <code>.fifo</code>.<br />
  If you don’t specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the topic name. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html">Name type</a>.<br />
  If you specify a name, you can’t perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
  
  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> */
    topicName?: Value<string>;
}
