import * as core from "@terrascript/core"; export interface OperationPreferencesArgs extends core.SchemaArgs { failureToleranceCount?: number | core.NumberOut; failureTolerancePercentage?: number | core.NumberOut; maxConcurrentCount?: number | core.NumberOut; maxConcurrentPercentage?: number | core.NumberOut; regionConcurrencyType?: string | core.StringOut; regionOrder?: core.Array | core.ArrayOut; } export class OperationPreferences extends core.Schema { @core.attr(Number) public failureToleranceCount?: number | core.NumberOut; @core.attr(Number) public failureTolerancePercentage?: number | core.NumberOut; @core.attr(Number) public maxConcurrentCount?: number | core.NumberOut; @core.attr(Number) public maxConcurrentPercentage?: number | core.NumberOut; @core.attr(String) public regionConcurrencyType?: string | core.StringOut; @core.attr(String, { kind: "array" }) public regionOrder?: core.Array | core.ArrayOut; } export interface AutoDeploymentArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; retainStacksOnAccountRemoval?: boolean | core.BooleanOut; } export class AutoDeployment extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(Boolean) public retainStacksOnAccountRemoval?: boolean | core.BooleanOut; } export interface StackSetArgs extends core.ResourceArgs { /** * (Optional) Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be d * efined when using the `SELF_MANAGED` permission model. */ administrationRoleArn?: string | core.StringOut; /** * (Optional) Configuration block containing the auto-deployment model for your StackSet. This can only * be defined when using the `SERVICE_MANAGED` permission model. */ autoDeployment?: AutoDeployment; /** * (Optional) Specifies whether you are acting as an account administrator in the organization's manage * ment account or as a delegated administrator in a member account. Valid values: `SELF` (default), `D * ELEGATED_ADMIN`. */ callAs?: string | core.StringOut; /** * (Optional) A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILI * TY_AUTO_EXPAND`. */ capabilities?: core.Array | core.ArrayOut; /** * (Optional) Description of the StackSet. */ description?: string | core.StringOut; /** * (Optional) Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSClou * dFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be * defined when using the `SERVICE_MANAGED` permission model. */ executionRoleName?: string | core.StringOut; /** * (Required) Name of the StackSet. The name must be unique in the region where you create your StackSe * t. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start wit * h an alphabetic character and cannot be longer than 128 characters. */ name: string | core.StringOut; /** * (Optional) Preferences for how AWS CloudFormation performs a stack set update. */ operationPreferences?: OperationPreferences; /** * (Optional) Key-value map of input parameters for the StackSet template. All template parameters, inc * luding those with a `Default`, must be configured or ignored with `lifecycle` configuration block `i * gnore_changes` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` confi * guration block `ignore_changes` argument. */ parameters?: core.Map | core.MapOut; /** * (Optional) Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_M * ANAGED` (default), `SERVICE_MANAGED`. */ permissionModel?: string | core.StringOut; /** * (Optional) Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS * CloudFormation also propagates these tags to supported resources that are created in the Stacks. A * maximum number of 50 tags can be specified. If configured with a provider [`default_tags` configurat * ion block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurat * ion-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; /** * (Optional) String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts * with `template_url`. */ templateBody?: string | core.StringOut; /** * (Optional) String containing the location of a file containing the CloudFormation template body. The * URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 46 * 0,800 bytes. Conflicts with `template_body`. */ templateUrl?: string | core.StringOut; } export class StackSet extends core.Resource { /** * (Optional) Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be d * efined when using the `SELF_MANAGED` permission model. */ @core.attr(String) public administrationRoleArn?: string | core.StringOut; /** * Amazon Resource Name (ARN) of the StackSet. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Configuration block containing the auto-deployment model for your StackSet. This can only * be defined when using the `SERVICE_MANAGED` permission model. */ @core.attr(AutoDeployment) public autoDeployment?: AutoDeployment; /** * (Optional) Specifies whether you are acting as an account administrator in the organization's manage * ment account or as a delegated administrator in a member account. Valid values: `SELF` (default), `D * ELEGATED_ADMIN`. */ @core.attr(String) public callAs?: string | core.StringOut; /** * (Optional) A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILI * TY_AUTO_EXPAND`. */ @core.attr(String, { kind: "array" }) public capabilities?: core.Array | core.ArrayOut; /** * (Optional) Description of the StackSet. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSClou * dFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be * defined when using the `SERVICE_MANAGED` permission model. */ @core.attr(String, { computed: true }) public executionRoleName?: string | core.StringOut; /** * Name of the StackSet. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name of the StackSet. The name must be unique in the region where you create your StackSe * t. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start wit * h an alphabetic character and cannot be longer than 128 characters. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Preferences for how AWS CloudFormation performs a stack set update. */ @core.attr(OperationPreferences) public operationPreferences?: OperationPreferences; /** * (Optional) Key-value map of input parameters for the StackSet template. All template parameters, inc * luding those with a `Default`, must be configured or ignored with `lifecycle` configuration block `i * gnore_changes` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` confi * guration block `ignore_changes` argument. */ @core.attr(String, { kind: "map" }) public parameters?: core.Map | core.MapOut; /** * (Optional) Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_M * ANAGED` (default), `SERVICE_MANAGED`. */ @core.attr(String) public permissionModel?: string | core.StringOut; /** * Unique identifier of the StackSet. */ @core.attr(String, { computed: true }) public stackSetId!: string | core.StringOut; /** * (Optional) Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS * CloudFormation also propagates these tags to supported resources that are created in the Stacks. A * maximum number of 50 tags can be specified. If configured with a provider [`default_tags` configurat * ion block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurat * ion-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; /** * (Optional) String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts * with `template_url`. */ @core.attr(String, { computed: true }) public templateBody?: string | core.StringOut; /** * (Optional) String containing the location of a file containing the CloudFormation template body. The * URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 46 * 0,800 bytes. Conflicts with `template_body`. */ @core.attr(String) public templateUrl?: string | core.StringOut; constructor(name: string, args?: StackSetArgs) { super(name, "aws_cloudformation_stack_set", args); } public override getNamespace(): string { return "aws_cloudformation"; } }