import * as core from "@terrascript/core"; export interface TopicPolicyArgs extends core.ResourceArgs { /** * (Required) The ARN of the SNS topic */ arn: string | core.StringOut; /** * (Required) 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; } export class TopicPolicy extends core.Resource { /** * (Required) The ARN of the SNS topic */ @core.attr(String) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The AWS Account ID of the SNS topic owner */ @core.attr(String, { computed: true }) public owner!: string | core.StringOut; /** * (Required) 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) public policy!: string | core.StringOut; constructor(name: string, args?: TopicPolicyArgs) { super(name, "aws_sns_topic_policy", args); } public override getNamespace(): string { return "aws_sns"; } }