-
Notifications
You must be signed in to change notification settings - Fork 17
/
CfnTopicProps.go
122 lines (119 loc) · 7.18 KB
/
CfnTopicProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package awssns
import (
"github.com/aws/aws-cdk-go/awscdk/v2"
)
// Properties for defining a `CfnTopic`.
//
// Example:
// // The code below shows an example of how to instantiate this type.
// // The values are placeholders you should change.
// import "github.com/aws/aws-cdk-go/awscdk"
//
// var archivePolicy interface{}
// var dataProtectionPolicy interface{}
//
// cfnTopicProps := &CfnTopicProps{
// ArchivePolicy: archivePolicy,
// ContentBasedDeduplication: jsii.Boolean(false),
// DataProtectionPolicy: dataProtectionPolicy,
// DisplayName: jsii.String("displayName"),
// FifoTopic: jsii.Boolean(false),
// KmsMasterKeyId: jsii.String("kmsMasterKeyId"),
// SignatureVersion: jsii.String("signatureVersion"),
// Subscription: []interface{}{
// &SubscriptionProperty{
// Endpoint: jsii.String("endpoint"),
// Protocol: jsii.String("protocol"),
// },
// },
// Tags: []cfnTag{
// &cfnTag{
// Key: jsii.String("key"),
// Value: jsii.String("value"),
// },
// },
// TopicName: jsii.String("topicName"),
// TracingConfig: jsii.String("tracingConfig"),
// }
//
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html
//
type CfnTopicProps struct {
// The archive policy determines the number of days Amazon SNS retains messages.
//
// You can set a retention period from 1 to 365 days.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-archivepolicy
//
ArchivePolicy interface{} `field:"optional" json:"archivePolicy" yaml:"archivePolicy"`
// Enables content-based deduplication for FIFO topics.
//
// - By default, `ContentBasedDeduplication` is set to `false` . If you create a FIFO topic and this attribute is `false` , you must specify a value for the `MessageDeduplicationId` parameter for the [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) action.
// - When you set `ContentBasedDeduplication` to `true` , Amazon SNS uses a SHA-256 hash to generate the `MessageDeduplicationId` using the body of the message (but not the attributes of the message).
//
// (Optional) To override the generated value, you can specify a value for the the `MessageDeduplicationId` parameter for the `Publish` action.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-contentbaseddeduplication
//
ContentBasedDeduplication interface{} `field:"optional" json:"contentBasedDeduplication" yaml:"contentBasedDeduplication"`
// The body of the policy document you want to use for this topic.
//
// You can only add one policy per topic.
//
// The policy must be in JSON string format.
//
// Length Constraints: Maximum length of 30,720.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-dataprotectionpolicy
//
DataProtectionPolicy interface{} `field:"optional" json:"dataProtectionPolicy" yaml:"dataProtectionPolicy"`
// 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.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-displayname
//
DisplayName *string `field:"optional" json:"displayName" yaml:"displayName"`
// Set to true to create a FIFO topic.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-fifotopic
//
FifoTopic interface{} `field:"optional" json:"fifoTopic" yaml:"fifoTopic"`
// The ID of an AWS managed customer master key (CMK) for Amazon SNS or a custom CMK.
//
// For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms) . For more examples, see `[KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)` in the *AWS Key Management Service API Reference* .
//
// This property applies only to [server-side-encryption](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html) .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-kmsmasterkeyid
//
KmsMasterKeyId *string `field:"optional" json:"kmsMasterKeyId" yaml:"kmsMasterKeyId"`
// 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, `SignatureVersion` is set to `1` .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-signatureversion
//
SignatureVersion *string `field:"optional" json:"signatureVersion" yaml:"signatureVersion"`
// The Amazon SNS subscriptions (endpoints) for this topic.
//
// > If you specify the `Subscription` property in the `AWS::SNS::Topic` resource and it creates an associated subscription resource, the associated subscription is not deleted when the `AWS::SNS::Topic` resource is deleted.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-subscription
//
Subscription interface{} `field:"optional" json:"subscription" yaml:"subscription"`
// The list of tags to add to a new topic.
//
// > To be able to tag a topic on creation, you must have the `sns:CreateTopic` and `sns:TagResource` permissions.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-tags
//
Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
// 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 `.fifo` .
//
// 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 [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
//
// > 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.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-topicname
//
TopicName *string `field:"optional" json:"topicName" yaml:"topicName"`
// Tracing mode of an Amazon SNS topic.
//
// By default `TracingConfig` is set to `PassThrough` , and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to `Active` , 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.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-tracingconfig
//
TracingConfig *string `field:"optional" json:"tracingConfig" yaml:"tracingConfig"`
}