import * as core from "@terrascript/core"; export interface StackArgs extends core.ResourceArgs { /** * (Optional) A list of capabilities. */ capabilities?: core.Array | core.ArrayOut; /** * (Optional) Set to true to disable rollback of the stack if stack creation failed. */ disableRollback?: boolean | core.BooleanOut; /** * (Optional) The ARN of an IAM role that AWS CloudFormation assumes to create the stack. If you don't * specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If * no role is available, AWS CloudFormation uses a temporary session that is generated from your user c * redentials. */ iamRoleArn?: string | core.StringOut; /** * (Required) Stack name. */ name: string | core.StringOut; /** * (Optional) A list of SNS topic ARNs to publish stack related events. */ notificationArns?: core.Array | core.ArrayOut; /** * (Optional) Action to be taken if stack creation fails. This must be */ onFailure?: string | core.StringOut; /** * (Optional) A map of Parameter structures that specify input parameters for the stack. */ parameters?: core.Map | core.MapOut; /** * (Optional) Structure containing the stack policy body. */ policyBody?: string | core.StringOut; /** * (Optional) Location of a file containing the stack policy. */ policyUrl?: string | core.StringOut; /** * (Optional) Map of resource tags to associate with this stack. If configured with a provider [`defaul * t_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defau * lt_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pr * ovider-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; /** * (Optional) Structure containing the template body (max size: 51,200 bytes). */ templateBody?: string | core.StringOut; /** * (Optional) Location of a file containing the template body (max size: 460,800 bytes). */ templateUrl?: string | core.StringOut; /** * (Optional) The amount of time that can pass before the stack status becomes `CREATE_FAILED`. */ timeoutInMinutes?: number | core.NumberOut; } export class Stack extends core.Resource { /** * (Optional) A list of capabilities. */ @core.attr(String, { kind: "array" }) public capabilities?: core.Array | core.ArrayOut; /** * (Optional) Set to true to disable rollback of the stack if stack creation failed. */ @core.attr(Boolean) public disableRollback?: boolean | core.BooleanOut; /** * (Optional) The ARN of an IAM role that AWS CloudFormation assumes to create the stack. If you don't * specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If * no role is available, AWS CloudFormation uses a temporary session that is generated from your user c * redentials. */ @core.attr(String) public iamRoleArn?: string | core.StringOut; /** * A unique identifier of the stack. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Stack name. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) A list of SNS topic ARNs to publish stack related events. */ @core.attr(String, { kind: "array" }) public notificationArns?: core.Array | core.ArrayOut; /** * (Optional) Action to be taken if stack creation fails. This must be */ @core.attr(String) public onFailure?: string | core.StringOut; /** * A map of outputs from the stack. */ @core.attr(String, { computed: true, kind: "map" }) public outputs!: core.Map | core.MapOut; /** * (Optional) A map of Parameter structures that specify input parameters for the stack. */ @core.attr(String, { computed: true, kind: "map" }) public parameters?: core.Map | core.MapOut; /** * (Optional) Structure containing the stack policy body. */ @core.attr(String, { computed: true }) public policyBody?: string | core.StringOut; /** * (Optional) Location of a file containing the stack policy. */ @core.attr(String) public policyUrl?: string | core.StringOut; /** * (Optional) Map of resource tags to associate with this stack. If configured with a provider [`defaul * t_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defau * lt_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pr * ovider-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; /** * (Optional) Structure containing the template body (max size: 51,200 bytes). */ @core.attr(String, { computed: true }) public templateBody?: string | core.StringOut; /** * (Optional) Location of a file containing the template body (max size: 460,800 bytes). */ @core.attr(String) public templateUrl?: string | core.StringOut; /** * (Optional) The amount of time that can pass before the stack status becomes `CREATE_FAILED`. */ @core.attr(Number) public timeoutInMinutes?: number | core.NumberOut; constructor(name: string, args?: StackArgs) { super(name, "aws_cloudformation_stack", args); } public override getNamespace(): string { return "aws_cloudformation"; } }