github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/sns/topic.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package sns 5 6 import ( 7 "context" 8 "reflect" 9 10 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Provides an SNS topic resource 15 // 16 // ## Example Usage 17 // 18 // <!--Start PulumiCodeChooser --> 19 // ```go 20 // package main 21 // 22 // import ( 23 // 24 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" 25 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 26 // 27 // ) 28 // 29 // func main() { 30 // pulumi.Run(func(ctx *pulumi.Context) error { 31 // _, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{ 32 // Name: pulumi.String("user-updates-topic"), 33 // }) 34 // if err != nil { 35 // return err 36 // } 37 // return nil 38 // }) 39 // } 40 // 41 // ``` 42 // <!--End PulumiCodeChooser --> 43 // 44 // ## Example with Delivery Policy 45 // 46 // <!--Start PulumiCodeChooser --> 47 // ```go 48 // package main 49 // 50 // import ( 51 // 52 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" 53 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 54 // 55 // ) 56 // 57 // func main() { 58 // pulumi.Run(func(ctx *pulumi.Context) error { 59 // _, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{ 60 // Name: pulumi.String("user-updates-topic"), 61 // DeliveryPolicy: pulumi.String(`{ 62 // "http": { 63 // "defaultHealthyRetryPolicy": { 64 // "minDelayTarget": 20, 65 // "maxDelayTarget": 20, 66 // "numRetries": 3, 67 // "numMaxDelayRetries": 0, 68 // "numNoDelayRetries": 0, 69 // "numMinDelayRetries": 0, 70 // "backoffFunction": "linear" 71 // }, 72 // "disableSubscriptionOverrides": false, 73 // "defaultThrottlePolicy": { 74 // "maxReceivesPerSecond": 1 75 // } 76 // } 77 // } 78 // 79 // `), 80 // 81 // }) 82 // if err != nil { 83 // return err 84 // } 85 // return nil 86 // }) 87 // } 88 // 89 // ``` 90 // <!--End PulumiCodeChooser --> 91 // 92 // ## Example with Server-side encryption (SSE) 93 // 94 // <!--Start PulumiCodeChooser --> 95 // ```go 96 // package main 97 // 98 // import ( 99 // 100 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" 101 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 102 // 103 // ) 104 // 105 // func main() { 106 // pulumi.Run(func(ctx *pulumi.Context) error { 107 // _, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{ 108 // Name: pulumi.String("user-updates-topic"), 109 // KmsMasterKeyId: pulumi.String("alias/aws/sns"), 110 // }) 111 // if err != nil { 112 // return err 113 // } 114 // return nil 115 // }) 116 // } 117 // 118 // ``` 119 // <!--End PulumiCodeChooser --> 120 // 121 // ## Example with First-In-First-Out (FIFO) 122 // 123 // <!--Start PulumiCodeChooser --> 124 // ```go 125 // package main 126 // 127 // import ( 128 // 129 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" 130 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 131 // 132 // ) 133 // 134 // func main() { 135 // pulumi.Run(func(ctx *pulumi.Context) error { 136 // _, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{ 137 // Name: pulumi.String("user-updates-topic.fifo"), 138 // FifoTopic: pulumi.Bool(true), 139 // ContentBasedDeduplication: pulumi.Bool(true), 140 // }) 141 // if err != nil { 142 // return err 143 // } 144 // return nil 145 // }) 146 // } 147 // 148 // ``` 149 // <!--End PulumiCodeChooser --> 150 // 151 // ## Message Delivery Status Arguments 152 // 153 // The `<endpoint>_success_feedback_role_arn` and `<endpoint>_failure_feedback_role_arn` arguments are used to give Amazon SNS write access to use CloudWatch Logs on your behalf. The `<endpoint>_success_feedback_sample_rate` argument is for specifying the sample rate percentage (0-100) of successfully delivered messages. After you configure the `<endpoint>_failure_feedback_role_arn` argument, then all failed message deliveries generate CloudWatch Logs. 154 // 155 // ## Import 156 // 157 // Using `pulumi import`, import SNS Topics using the topic `arn`. For example: 158 // 159 // ```sh 160 // $ pulumi import aws:sns/topic:Topic user_updates arn:aws:sns:us-west-2:0123456789012:my-topic 161 // ``` 162 type Topic struct { 163 pulumi.CustomResourceState 164 165 // IAM role for failure feedback 166 ApplicationFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"applicationFailureFeedbackRoleArn"` 167 // The IAM role permitted to receive success feedback for this topic 168 ApplicationSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"applicationSuccessFeedbackRoleArn"` 169 // Percentage of success to sample 170 ApplicationSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"applicationSuccessFeedbackSampleRate"` 171 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 172 ArchivePolicy pulumi.StringPtrOutput `pulumi:"archivePolicy"` 173 // The ARN of the SNS topic, as a more obvious property (clone of id) 174 Arn pulumi.StringOutput `pulumi:"arn"` 175 // The oldest timestamp at which a FIFO topic subscriber can start a replay. 176 BeginningArchiveTime pulumi.StringOutput `pulumi:"beginningArchiveTime"` 177 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 178 ContentBasedDeduplication pulumi.BoolPtrOutput `pulumi:"contentBasedDeduplication"` 179 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 180 DeliveryPolicy pulumi.StringPtrOutput `pulumi:"deliveryPolicy"` 181 // The display name for the topic 182 DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` 183 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 184 FifoTopic pulumi.BoolPtrOutput `pulumi:"fifoTopic"` 185 // IAM role for failure feedback 186 FirehoseFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"firehoseFailureFeedbackRoleArn"` 187 // The IAM role permitted to receive success feedback for this topic 188 FirehoseSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"firehoseSuccessFeedbackRoleArn"` 189 // Percentage of success to sample 190 FirehoseSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"firehoseSuccessFeedbackSampleRate"` 191 // IAM role for failure feedback 192 HttpFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"httpFailureFeedbackRoleArn"` 193 // The IAM role permitted to receive success feedback for this topic 194 HttpSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"httpSuccessFeedbackRoleArn"` 195 // Percentage of success to sample 196 HttpSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"httpSuccessFeedbackSampleRate"` 197 // 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) 198 KmsMasterKeyId pulumi.StringPtrOutput `pulumi:"kmsMasterKeyId"` 199 // IAM role for failure feedback 200 LambdaFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"lambdaFailureFeedbackRoleArn"` 201 // The IAM role permitted to receive success feedback for this topic 202 LambdaSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"lambdaSuccessFeedbackRoleArn"` 203 // Percentage of success to sample 204 LambdaSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"lambdaSuccessFeedbackSampleRate"` 205 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 206 Name pulumi.StringOutput `pulumi:"name"` 207 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 208 NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` 209 // The AWS Account ID of the SNS topic owner 210 Owner pulumi.StringOutput `pulumi:"owner"` 211 // The fully-formed AWS policy as JSON. 212 Policy pulumi.StringOutput `pulumi:"policy"` 213 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 214 SignatureVersion pulumi.IntOutput `pulumi:"signatureVersion"` 215 // IAM role for failure feedback 216 SqsFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"sqsFailureFeedbackRoleArn"` 217 // The IAM role permitted to receive success feedback for this topic 218 SqsSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"sqsSuccessFeedbackRoleArn"` 219 // Percentage of success to sample 220 SqsSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"sqsSuccessFeedbackSampleRate"` 221 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 222 Tags pulumi.StringMapOutput `pulumi:"tags"` 223 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 224 // 225 // Deprecated: Please use `tags` instead. 226 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 227 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 228 TracingConfig pulumi.StringOutput `pulumi:"tracingConfig"` 229 } 230 231 // NewTopic registers a new resource with the given unique name, arguments, and options. 232 func NewTopic(ctx *pulumi.Context, 233 name string, args *TopicArgs, opts ...pulumi.ResourceOption) (*Topic, error) { 234 if args == nil { 235 args = &TopicArgs{} 236 } 237 238 opts = internal.PkgResourceDefaultOpts(opts) 239 var resource Topic 240 err := ctx.RegisterResource("aws:sns/topic:Topic", name, args, &resource, opts...) 241 if err != nil { 242 return nil, err 243 } 244 return &resource, nil 245 } 246 247 // GetTopic gets an existing Topic resource's state with the given name, ID, and optional 248 // state properties that are used to uniquely qualify the lookup (nil if not required). 249 func GetTopic(ctx *pulumi.Context, 250 name string, id pulumi.IDInput, state *TopicState, opts ...pulumi.ResourceOption) (*Topic, error) { 251 var resource Topic 252 err := ctx.ReadResource("aws:sns/topic:Topic", name, id, state, &resource, opts...) 253 if err != nil { 254 return nil, err 255 } 256 return &resource, nil 257 } 258 259 // Input properties used for looking up and filtering Topic resources. 260 type topicState struct { 261 // IAM role for failure feedback 262 ApplicationFailureFeedbackRoleArn *string `pulumi:"applicationFailureFeedbackRoleArn"` 263 // The IAM role permitted to receive success feedback for this topic 264 ApplicationSuccessFeedbackRoleArn *string `pulumi:"applicationSuccessFeedbackRoleArn"` 265 // Percentage of success to sample 266 ApplicationSuccessFeedbackSampleRate *int `pulumi:"applicationSuccessFeedbackSampleRate"` 267 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 268 ArchivePolicy *string `pulumi:"archivePolicy"` 269 // The ARN of the SNS topic, as a more obvious property (clone of id) 270 Arn *string `pulumi:"arn"` 271 // The oldest timestamp at which a FIFO topic subscriber can start a replay. 272 BeginningArchiveTime *string `pulumi:"beginningArchiveTime"` 273 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 274 ContentBasedDeduplication *bool `pulumi:"contentBasedDeduplication"` 275 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 276 DeliveryPolicy *string `pulumi:"deliveryPolicy"` 277 // The display name for the topic 278 DisplayName *string `pulumi:"displayName"` 279 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 280 FifoTopic *bool `pulumi:"fifoTopic"` 281 // IAM role for failure feedback 282 FirehoseFailureFeedbackRoleArn *string `pulumi:"firehoseFailureFeedbackRoleArn"` 283 // The IAM role permitted to receive success feedback for this topic 284 FirehoseSuccessFeedbackRoleArn *string `pulumi:"firehoseSuccessFeedbackRoleArn"` 285 // Percentage of success to sample 286 FirehoseSuccessFeedbackSampleRate *int `pulumi:"firehoseSuccessFeedbackSampleRate"` 287 // IAM role for failure feedback 288 HttpFailureFeedbackRoleArn *string `pulumi:"httpFailureFeedbackRoleArn"` 289 // The IAM role permitted to receive success feedback for this topic 290 HttpSuccessFeedbackRoleArn *string `pulumi:"httpSuccessFeedbackRoleArn"` 291 // Percentage of success to sample 292 HttpSuccessFeedbackSampleRate *int `pulumi:"httpSuccessFeedbackSampleRate"` 293 // 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) 294 KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"` 295 // IAM role for failure feedback 296 LambdaFailureFeedbackRoleArn *string `pulumi:"lambdaFailureFeedbackRoleArn"` 297 // The IAM role permitted to receive success feedback for this topic 298 LambdaSuccessFeedbackRoleArn *string `pulumi:"lambdaSuccessFeedbackRoleArn"` 299 // Percentage of success to sample 300 LambdaSuccessFeedbackSampleRate *int `pulumi:"lambdaSuccessFeedbackSampleRate"` 301 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 302 Name *string `pulumi:"name"` 303 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 304 NamePrefix *string `pulumi:"namePrefix"` 305 // The AWS Account ID of the SNS topic owner 306 Owner *string `pulumi:"owner"` 307 // The fully-formed AWS policy as JSON. 308 Policy *string `pulumi:"policy"` 309 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 310 SignatureVersion *int `pulumi:"signatureVersion"` 311 // IAM role for failure feedback 312 SqsFailureFeedbackRoleArn *string `pulumi:"sqsFailureFeedbackRoleArn"` 313 // The IAM role permitted to receive success feedback for this topic 314 SqsSuccessFeedbackRoleArn *string `pulumi:"sqsSuccessFeedbackRoleArn"` 315 // Percentage of success to sample 316 SqsSuccessFeedbackSampleRate *int `pulumi:"sqsSuccessFeedbackSampleRate"` 317 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 318 Tags map[string]string `pulumi:"tags"` 319 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 320 // 321 // Deprecated: Please use `tags` instead. 322 TagsAll map[string]string `pulumi:"tagsAll"` 323 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 324 TracingConfig *string `pulumi:"tracingConfig"` 325 } 326 327 type TopicState struct { 328 // IAM role for failure feedback 329 ApplicationFailureFeedbackRoleArn pulumi.StringPtrInput 330 // The IAM role permitted to receive success feedback for this topic 331 ApplicationSuccessFeedbackRoleArn pulumi.StringPtrInput 332 // Percentage of success to sample 333 ApplicationSuccessFeedbackSampleRate pulumi.IntPtrInput 334 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 335 ArchivePolicy pulumi.StringPtrInput 336 // The ARN of the SNS topic, as a more obvious property (clone of id) 337 Arn pulumi.StringPtrInput 338 // The oldest timestamp at which a FIFO topic subscriber can start a replay. 339 BeginningArchiveTime pulumi.StringPtrInput 340 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 341 ContentBasedDeduplication pulumi.BoolPtrInput 342 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 343 DeliveryPolicy pulumi.StringPtrInput 344 // The display name for the topic 345 DisplayName pulumi.StringPtrInput 346 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 347 FifoTopic pulumi.BoolPtrInput 348 // IAM role for failure feedback 349 FirehoseFailureFeedbackRoleArn pulumi.StringPtrInput 350 // The IAM role permitted to receive success feedback for this topic 351 FirehoseSuccessFeedbackRoleArn pulumi.StringPtrInput 352 // Percentage of success to sample 353 FirehoseSuccessFeedbackSampleRate pulumi.IntPtrInput 354 // IAM role for failure feedback 355 HttpFailureFeedbackRoleArn pulumi.StringPtrInput 356 // The IAM role permitted to receive success feedback for this topic 357 HttpSuccessFeedbackRoleArn pulumi.StringPtrInput 358 // Percentage of success to sample 359 HttpSuccessFeedbackSampleRate pulumi.IntPtrInput 360 // 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) 361 KmsMasterKeyId pulumi.StringPtrInput 362 // IAM role for failure feedback 363 LambdaFailureFeedbackRoleArn pulumi.StringPtrInput 364 // The IAM role permitted to receive success feedback for this topic 365 LambdaSuccessFeedbackRoleArn pulumi.StringPtrInput 366 // Percentage of success to sample 367 LambdaSuccessFeedbackSampleRate pulumi.IntPtrInput 368 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 369 Name pulumi.StringPtrInput 370 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 371 NamePrefix pulumi.StringPtrInput 372 // The AWS Account ID of the SNS topic owner 373 Owner pulumi.StringPtrInput 374 // The fully-formed AWS policy as JSON. 375 Policy pulumi.StringPtrInput 376 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 377 SignatureVersion pulumi.IntPtrInput 378 // IAM role for failure feedback 379 SqsFailureFeedbackRoleArn pulumi.StringPtrInput 380 // The IAM role permitted to receive success feedback for this topic 381 SqsSuccessFeedbackRoleArn pulumi.StringPtrInput 382 // Percentage of success to sample 383 SqsSuccessFeedbackSampleRate pulumi.IntPtrInput 384 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 385 Tags pulumi.StringMapInput 386 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 387 // 388 // Deprecated: Please use `tags` instead. 389 TagsAll pulumi.StringMapInput 390 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 391 TracingConfig pulumi.StringPtrInput 392 } 393 394 func (TopicState) ElementType() reflect.Type { 395 return reflect.TypeOf((*topicState)(nil)).Elem() 396 } 397 398 type topicArgs struct { 399 // IAM role for failure feedback 400 ApplicationFailureFeedbackRoleArn *string `pulumi:"applicationFailureFeedbackRoleArn"` 401 // The IAM role permitted to receive success feedback for this topic 402 ApplicationSuccessFeedbackRoleArn *string `pulumi:"applicationSuccessFeedbackRoleArn"` 403 // Percentage of success to sample 404 ApplicationSuccessFeedbackSampleRate *int `pulumi:"applicationSuccessFeedbackSampleRate"` 405 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 406 ArchivePolicy *string `pulumi:"archivePolicy"` 407 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 408 ContentBasedDeduplication *bool `pulumi:"contentBasedDeduplication"` 409 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 410 DeliveryPolicy *string `pulumi:"deliveryPolicy"` 411 // The display name for the topic 412 DisplayName *string `pulumi:"displayName"` 413 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 414 FifoTopic *bool `pulumi:"fifoTopic"` 415 // IAM role for failure feedback 416 FirehoseFailureFeedbackRoleArn *string `pulumi:"firehoseFailureFeedbackRoleArn"` 417 // The IAM role permitted to receive success feedback for this topic 418 FirehoseSuccessFeedbackRoleArn *string `pulumi:"firehoseSuccessFeedbackRoleArn"` 419 // Percentage of success to sample 420 FirehoseSuccessFeedbackSampleRate *int `pulumi:"firehoseSuccessFeedbackSampleRate"` 421 // IAM role for failure feedback 422 HttpFailureFeedbackRoleArn *string `pulumi:"httpFailureFeedbackRoleArn"` 423 // The IAM role permitted to receive success feedback for this topic 424 HttpSuccessFeedbackRoleArn *string `pulumi:"httpSuccessFeedbackRoleArn"` 425 // Percentage of success to sample 426 HttpSuccessFeedbackSampleRate *int `pulumi:"httpSuccessFeedbackSampleRate"` 427 // 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) 428 KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"` 429 // IAM role for failure feedback 430 LambdaFailureFeedbackRoleArn *string `pulumi:"lambdaFailureFeedbackRoleArn"` 431 // The IAM role permitted to receive success feedback for this topic 432 LambdaSuccessFeedbackRoleArn *string `pulumi:"lambdaSuccessFeedbackRoleArn"` 433 // Percentage of success to sample 434 LambdaSuccessFeedbackSampleRate *int `pulumi:"lambdaSuccessFeedbackSampleRate"` 435 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 436 Name *string `pulumi:"name"` 437 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 438 NamePrefix *string `pulumi:"namePrefix"` 439 // The fully-formed AWS policy as JSON. 440 Policy *string `pulumi:"policy"` 441 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 442 SignatureVersion *int `pulumi:"signatureVersion"` 443 // IAM role for failure feedback 444 SqsFailureFeedbackRoleArn *string `pulumi:"sqsFailureFeedbackRoleArn"` 445 // The IAM role permitted to receive success feedback for this topic 446 SqsSuccessFeedbackRoleArn *string `pulumi:"sqsSuccessFeedbackRoleArn"` 447 // Percentage of success to sample 448 SqsSuccessFeedbackSampleRate *int `pulumi:"sqsSuccessFeedbackSampleRate"` 449 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 450 Tags map[string]string `pulumi:"tags"` 451 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 452 TracingConfig *string `pulumi:"tracingConfig"` 453 } 454 455 // The set of arguments for constructing a Topic resource. 456 type TopicArgs struct { 457 // IAM role for failure feedback 458 ApplicationFailureFeedbackRoleArn pulumi.StringPtrInput 459 // The IAM role permitted to receive success feedback for this topic 460 ApplicationSuccessFeedbackRoleArn pulumi.StringPtrInput 461 // Percentage of success to sample 462 ApplicationSuccessFeedbackSampleRate pulumi.IntPtrInput 463 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 464 ArchivePolicy pulumi.StringPtrInput 465 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 466 ContentBasedDeduplication pulumi.BoolPtrInput 467 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 468 DeliveryPolicy pulumi.StringPtrInput 469 // The display name for the topic 470 DisplayName pulumi.StringPtrInput 471 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 472 FifoTopic pulumi.BoolPtrInput 473 // IAM role for failure feedback 474 FirehoseFailureFeedbackRoleArn pulumi.StringPtrInput 475 // The IAM role permitted to receive success feedback for this topic 476 FirehoseSuccessFeedbackRoleArn pulumi.StringPtrInput 477 // Percentage of success to sample 478 FirehoseSuccessFeedbackSampleRate pulumi.IntPtrInput 479 // IAM role for failure feedback 480 HttpFailureFeedbackRoleArn pulumi.StringPtrInput 481 // The IAM role permitted to receive success feedback for this topic 482 HttpSuccessFeedbackRoleArn pulumi.StringPtrInput 483 // Percentage of success to sample 484 HttpSuccessFeedbackSampleRate pulumi.IntPtrInput 485 // 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) 486 KmsMasterKeyId pulumi.StringPtrInput 487 // IAM role for failure feedback 488 LambdaFailureFeedbackRoleArn pulumi.StringPtrInput 489 // The IAM role permitted to receive success feedback for this topic 490 LambdaSuccessFeedbackRoleArn pulumi.StringPtrInput 491 // Percentage of success to sample 492 LambdaSuccessFeedbackSampleRate pulumi.IntPtrInput 493 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 494 Name pulumi.StringPtrInput 495 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 496 NamePrefix pulumi.StringPtrInput 497 // The fully-formed AWS policy as JSON. 498 Policy pulumi.StringPtrInput 499 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 500 SignatureVersion pulumi.IntPtrInput 501 // IAM role for failure feedback 502 SqsFailureFeedbackRoleArn pulumi.StringPtrInput 503 // The IAM role permitted to receive success feedback for this topic 504 SqsSuccessFeedbackRoleArn pulumi.StringPtrInput 505 // Percentage of success to sample 506 SqsSuccessFeedbackSampleRate pulumi.IntPtrInput 507 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 508 Tags pulumi.StringMapInput 509 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 510 TracingConfig pulumi.StringPtrInput 511 } 512 513 func (TopicArgs) ElementType() reflect.Type { 514 return reflect.TypeOf((*topicArgs)(nil)).Elem() 515 } 516 517 type TopicInput interface { 518 pulumi.Input 519 520 ToTopicOutput() TopicOutput 521 ToTopicOutputWithContext(ctx context.Context) TopicOutput 522 } 523 524 func (*Topic) ElementType() reflect.Type { 525 return reflect.TypeOf((**Topic)(nil)).Elem() 526 } 527 528 func (i *Topic) ToTopicOutput() TopicOutput { 529 return i.ToTopicOutputWithContext(context.Background()) 530 } 531 532 func (i *Topic) ToTopicOutputWithContext(ctx context.Context) TopicOutput { 533 return pulumi.ToOutputWithContext(ctx, i).(TopicOutput) 534 } 535 536 // TopicArrayInput is an input type that accepts TopicArray and TopicArrayOutput values. 537 // You can construct a concrete instance of `TopicArrayInput` via: 538 // 539 // TopicArray{ TopicArgs{...} } 540 type TopicArrayInput interface { 541 pulumi.Input 542 543 ToTopicArrayOutput() TopicArrayOutput 544 ToTopicArrayOutputWithContext(context.Context) TopicArrayOutput 545 } 546 547 type TopicArray []TopicInput 548 549 func (TopicArray) ElementType() reflect.Type { 550 return reflect.TypeOf((*[]*Topic)(nil)).Elem() 551 } 552 553 func (i TopicArray) ToTopicArrayOutput() TopicArrayOutput { 554 return i.ToTopicArrayOutputWithContext(context.Background()) 555 } 556 557 func (i TopicArray) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput { 558 return pulumi.ToOutputWithContext(ctx, i).(TopicArrayOutput) 559 } 560 561 // TopicMapInput is an input type that accepts TopicMap and TopicMapOutput values. 562 // You can construct a concrete instance of `TopicMapInput` via: 563 // 564 // TopicMap{ "key": TopicArgs{...} } 565 type TopicMapInput interface { 566 pulumi.Input 567 568 ToTopicMapOutput() TopicMapOutput 569 ToTopicMapOutputWithContext(context.Context) TopicMapOutput 570 } 571 572 type TopicMap map[string]TopicInput 573 574 func (TopicMap) ElementType() reflect.Type { 575 return reflect.TypeOf((*map[string]*Topic)(nil)).Elem() 576 } 577 578 func (i TopicMap) ToTopicMapOutput() TopicMapOutput { 579 return i.ToTopicMapOutputWithContext(context.Background()) 580 } 581 582 func (i TopicMap) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput { 583 return pulumi.ToOutputWithContext(ctx, i).(TopicMapOutput) 584 } 585 586 type TopicOutput struct{ *pulumi.OutputState } 587 588 func (TopicOutput) ElementType() reflect.Type { 589 return reflect.TypeOf((**Topic)(nil)).Elem() 590 } 591 592 func (o TopicOutput) ToTopicOutput() TopicOutput { 593 return o 594 } 595 596 func (o TopicOutput) ToTopicOutputWithContext(ctx context.Context) TopicOutput { 597 return o 598 } 599 600 // IAM role for failure feedback 601 func (o TopicOutput) ApplicationFailureFeedbackRoleArn() pulumi.StringPtrOutput { 602 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.ApplicationFailureFeedbackRoleArn }).(pulumi.StringPtrOutput) 603 } 604 605 // The IAM role permitted to receive success feedback for this topic 606 func (o TopicOutput) ApplicationSuccessFeedbackRoleArn() pulumi.StringPtrOutput { 607 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.ApplicationSuccessFeedbackRoleArn }).(pulumi.StringPtrOutput) 608 } 609 610 // Percentage of success to sample 611 func (o TopicOutput) ApplicationSuccessFeedbackSampleRate() pulumi.IntPtrOutput { 612 return o.ApplyT(func(v *Topic) pulumi.IntPtrOutput { return v.ApplicationSuccessFeedbackSampleRate }).(pulumi.IntPtrOutput) 613 } 614 615 // The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html). 616 func (o TopicOutput) ArchivePolicy() pulumi.StringPtrOutput { 617 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.ArchivePolicy }).(pulumi.StringPtrOutput) 618 } 619 620 // The ARN of the SNS topic, as a more obvious property (clone of id) 621 func (o TopicOutput) Arn() pulumi.StringOutput { 622 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 623 } 624 625 // The oldest timestamp at which a FIFO topic subscriber can start a replay. 626 func (o TopicOutput) BeginningArchiveTime() pulumi.StringOutput { 627 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.BeginningArchiveTime }).(pulumi.StringOutput) 628 } 629 630 // Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) 631 func (o TopicOutput) ContentBasedDeduplication() pulumi.BoolPtrOutput { 632 return o.ApplyT(func(v *Topic) pulumi.BoolPtrOutput { return v.ContentBasedDeduplication }).(pulumi.BoolPtrOutput) 633 } 634 635 // The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html). 636 func (o TopicOutput) DeliveryPolicy() pulumi.StringPtrOutput { 637 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.DeliveryPolicy }).(pulumi.StringPtrOutput) 638 } 639 640 // The display name for the topic 641 func (o TopicOutput) DisplayName() pulumi.StringPtrOutput { 642 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) 643 } 644 645 // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`). 646 func (o TopicOutput) FifoTopic() pulumi.BoolPtrOutput { 647 return o.ApplyT(func(v *Topic) pulumi.BoolPtrOutput { return v.FifoTopic }).(pulumi.BoolPtrOutput) 648 } 649 650 // IAM role for failure feedback 651 func (o TopicOutput) FirehoseFailureFeedbackRoleArn() pulumi.StringPtrOutput { 652 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.FirehoseFailureFeedbackRoleArn }).(pulumi.StringPtrOutput) 653 } 654 655 // The IAM role permitted to receive success feedback for this topic 656 func (o TopicOutput) FirehoseSuccessFeedbackRoleArn() pulumi.StringPtrOutput { 657 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.FirehoseSuccessFeedbackRoleArn }).(pulumi.StringPtrOutput) 658 } 659 660 // Percentage of success to sample 661 func (o TopicOutput) FirehoseSuccessFeedbackSampleRate() pulumi.IntPtrOutput { 662 return o.ApplyT(func(v *Topic) pulumi.IntPtrOutput { return v.FirehoseSuccessFeedbackSampleRate }).(pulumi.IntPtrOutput) 663 } 664 665 // IAM role for failure feedback 666 func (o TopicOutput) HttpFailureFeedbackRoleArn() pulumi.StringPtrOutput { 667 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.HttpFailureFeedbackRoleArn }).(pulumi.StringPtrOutput) 668 } 669 670 // The IAM role permitted to receive success feedback for this topic 671 func (o TopicOutput) HttpSuccessFeedbackRoleArn() pulumi.StringPtrOutput { 672 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.HttpSuccessFeedbackRoleArn }).(pulumi.StringPtrOutput) 673 } 674 675 // Percentage of success to sample 676 func (o TopicOutput) HttpSuccessFeedbackSampleRate() pulumi.IntPtrOutput { 677 return o.ApplyT(func(v *Topic) pulumi.IntPtrOutput { return v.HttpSuccessFeedbackSampleRate }).(pulumi.IntPtrOutput) 678 } 679 680 // 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) 681 func (o TopicOutput) KmsMasterKeyId() pulumi.StringPtrOutput { 682 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.KmsMasterKeyId }).(pulumi.StringPtrOutput) 683 } 684 685 // IAM role for failure feedback 686 func (o TopicOutput) LambdaFailureFeedbackRoleArn() pulumi.StringPtrOutput { 687 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.LambdaFailureFeedbackRoleArn }).(pulumi.StringPtrOutput) 688 } 689 690 // The IAM role permitted to receive success feedback for this topic 691 func (o TopicOutput) LambdaSuccessFeedbackRoleArn() pulumi.StringPtrOutput { 692 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.LambdaSuccessFeedbackRoleArn }).(pulumi.StringPtrOutput) 693 } 694 695 // Percentage of success to sample 696 func (o TopicOutput) LambdaSuccessFeedbackSampleRate() pulumi.IntPtrOutput { 697 return o.ApplyT(func(v *Topic) pulumi.IntPtrOutput { return v.LambdaSuccessFeedbackSampleRate }).(pulumi.IntPtrOutput) 698 } 699 700 // The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix` 701 func (o TopicOutput) Name() pulumi.StringOutput { 702 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 703 } 704 705 // Creates a unique name beginning with the specified prefix. Conflicts with `name` 706 func (o TopicOutput) NamePrefix() pulumi.StringOutput { 707 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) 708 } 709 710 // The AWS Account ID of the SNS topic owner 711 func (o TopicOutput) Owner() pulumi.StringOutput { 712 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) 713 } 714 715 // The fully-formed AWS policy as JSON. 716 func (o TopicOutput) Policy() pulumi.StringOutput { 717 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 718 } 719 720 // If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). 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. 721 func (o TopicOutput) SignatureVersion() pulumi.IntOutput { 722 return o.ApplyT(func(v *Topic) pulumi.IntOutput { return v.SignatureVersion }).(pulumi.IntOutput) 723 } 724 725 // IAM role for failure feedback 726 func (o TopicOutput) SqsFailureFeedbackRoleArn() pulumi.StringPtrOutput { 727 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.SqsFailureFeedbackRoleArn }).(pulumi.StringPtrOutput) 728 } 729 730 // The IAM role permitted to receive success feedback for this topic 731 func (o TopicOutput) SqsSuccessFeedbackRoleArn() pulumi.StringPtrOutput { 732 return o.ApplyT(func(v *Topic) pulumi.StringPtrOutput { return v.SqsSuccessFeedbackRoleArn }).(pulumi.StringPtrOutput) 733 } 734 735 // Percentage of success to sample 736 func (o TopicOutput) SqsSuccessFeedbackSampleRate() pulumi.IntPtrOutput { 737 return o.ApplyT(func(v *Topic) pulumi.IntPtrOutput { return v.SqsSuccessFeedbackSampleRate }).(pulumi.IntPtrOutput) 738 } 739 740 // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 741 func (o TopicOutput) Tags() pulumi.StringMapOutput { 742 return o.ApplyT(func(v *Topic) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 743 } 744 745 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 746 // 747 // Deprecated: Please use `tags` instead. 748 func (o TopicOutput) TagsAll() pulumi.StringMapOutput { 749 return o.ApplyT(func(v *Topic) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 750 } 751 752 // Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. 753 func (o TopicOutput) TracingConfig() pulumi.StringOutput { 754 return o.ApplyT(func(v *Topic) pulumi.StringOutput { return v.TracingConfig }).(pulumi.StringOutput) 755 } 756 757 type TopicArrayOutput struct{ *pulumi.OutputState } 758 759 func (TopicArrayOutput) ElementType() reflect.Type { 760 return reflect.TypeOf((*[]*Topic)(nil)).Elem() 761 } 762 763 func (o TopicArrayOutput) ToTopicArrayOutput() TopicArrayOutput { 764 return o 765 } 766 767 func (o TopicArrayOutput) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput { 768 return o 769 } 770 771 func (o TopicArrayOutput) Index(i pulumi.IntInput) TopicOutput { 772 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Topic { 773 return vs[0].([]*Topic)[vs[1].(int)] 774 }).(TopicOutput) 775 } 776 777 type TopicMapOutput struct{ *pulumi.OutputState } 778 779 func (TopicMapOutput) ElementType() reflect.Type { 780 return reflect.TypeOf((*map[string]*Topic)(nil)).Elem() 781 } 782 783 func (o TopicMapOutput) ToTopicMapOutput() TopicMapOutput { 784 return o 785 } 786 787 func (o TopicMapOutput) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput { 788 return o 789 } 790 791 func (o TopicMapOutput) MapIndex(k pulumi.StringInput) TopicOutput { 792 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Topic { 793 return vs[0].(map[string]*Topic)[vs[1].(string)] 794 }).(TopicOutput) 795 } 796 797 func init() { 798 pulumi.RegisterInputType(reflect.TypeOf((*TopicInput)(nil)).Elem(), &Topic{}) 799 pulumi.RegisterInputType(reflect.TypeOf((*TopicArrayInput)(nil)).Elem(), TopicArray{}) 800 pulumi.RegisterInputType(reflect.TypeOf((*TopicMapInput)(nil)).Elem(), TopicMap{}) 801 pulumi.RegisterOutputType(TopicOutput{}) 802 pulumi.RegisterOutputType(TopicArrayOutput{}) 803 pulumi.RegisterOutputType(TopicMapOutput{}) 804 }