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  }