import * as core from "@terrascript/core"; export interface TopicArgs extends core.ResourceArgs { /** * (Optional) IAM role for failure feedback */ applicationFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ applicationSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ applicationSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) Enables content-based deduplication for FIFO topics. For more information, see the [relat * ed documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) */ contentBasedDeduplication?: boolean | core.BooleanOut; /** * (Optional) The SNS delivery policy. More on [AWS documentation](https://docs.aws.amazon.com/sns/late * st/dg/DeliveryPolicies.html) */ deliveryPolicy?: string | core.StringOut; /** * (Optional) The display name for the topic */ displayName?: string | core.StringOut; /** * (Optional) Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is * false`). */ fifoTopic?: boolean | core.BooleanOut; /** * (Optional) IAM role for failure feedback */ firehoseFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ firehoseSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ firehoseSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) IAM role for failure feedback */ httpFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ httpSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ httpSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For mo * re information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption * .html#sse-key-terms) */ kmsMasterKeyId?: string | core.StringOut; /** * (Optional) IAM role for failure feedback */ lambdaFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ lambdaSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ lambdaSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) 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 FIF * O (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, Terraform will * assign a random, unique name. Conflicts with `name_prefix` */ name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified prefix. Conflicts with `name` */ namePrefix?: string | core.StringOut; /** * (Optional) The fully-formed AWS policy as JSON. For more information about building AWS IAM policy d * ocuments with Terraform, see the [AWS IAM Policy Document Guide](https://learn.hashicorp.com/terrafo * rm/aws/iam-policy). */ policy?: string | core.StringOut; /** * (Optional) IAM role for failure feedback */ sqsFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ sqsSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ sqsSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Topic extends core.Resource { /** * (Optional) IAM role for failure feedback */ @core.attr(String) public applicationFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ @core.attr(String) public applicationSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ @core.attr(Number) public applicationSuccessFeedbackSampleRate?: number | core.NumberOut; /** * The ARN of the SNS topic, as a more obvious property (clone of id) */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Enables content-based deduplication for FIFO topics. For more information, see the [relat * ed documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html) */ @core.attr(Boolean) public contentBasedDeduplication?: boolean | core.BooleanOut; /** * (Optional) The SNS delivery policy. More on [AWS documentation](https://docs.aws.amazon.com/sns/late * st/dg/DeliveryPolicies.html) */ @core.attr(String) public deliveryPolicy?: string | core.StringOut; /** * (Optional) The display name for the topic */ @core.attr(String) public displayName?: string | core.StringOut; /** * (Optional) Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is * false`). */ @core.attr(Boolean) public fifoTopic?: boolean | core.BooleanOut; /** * (Optional) IAM role for failure feedback */ @core.attr(String) public firehoseFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ @core.attr(String) public firehoseSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ @core.attr(Number) public firehoseSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) IAM role for failure feedback */ @core.attr(String) public httpFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ @core.attr(String) public httpSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ @core.attr(Number) public httpSuccessFeedbackSampleRate?: number | core.NumberOut; /** * The ARN of the SNS topic */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For mo * re information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption * .html#sse-key-terms) */ @core.attr(String) public kmsMasterKeyId?: string | core.StringOut; /** * (Optional) IAM role for failure feedback */ @core.attr(String) public lambdaFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ @core.attr(String) public lambdaSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ @core.attr(Number) public lambdaSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) 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 FIF * O (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, Terraform will * assign a random, unique name. Conflicts with `name_prefix` */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified prefix. Conflicts with `name` */ @core.attr(String, { computed: true }) public namePrefix?: string | core.StringOut; /** * The AWS Account ID of the SNS topic owner */ @core.attr(String, { computed: true }) public owner!: string | core.StringOut; /** * (Optional) The fully-formed AWS policy as JSON. For more information about building AWS IAM policy d * ocuments with Terraform, see the [AWS IAM Policy Document Guide](https://learn.hashicorp.com/terrafo * rm/aws/iam-policy). */ @core.attr(String, { computed: true }) public policy?: string | core.StringOut; /** * (Optional) IAM role for failure feedback */ @core.attr(String) public sqsFailureFeedbackRoleArn?: string | core.StringOut; /** * (Optional) The IAM role permitted to receive success feedback for this topic */ @core.attr(String) public sqsSuccessFeedbackRoleArn?: string | core.StringOut; /** * (Optional) Percentage of success to sample */ @core.attr(Number) public sqsSuccessFeedbackSampleRate?: number | core.NumberOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: TopicArgs) { super(name, "aws_sns_topic", args); } public override getNamespace(): string { return "aws_sns"; } }