github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudformation/stackSet.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 cloudformation 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 // Manages a CloudFormation StackSet. StackSets allow CloudFormation templates to be easily deployed across multiple accounts and regions via StackSet Instances (`cloudformation.StackSetInstance` resource). Additional information about StackSets can be found in the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html). 15 // 16 // > **NOTE:** All template parameters, including those with a `Default`, must be configured or ignored with the `lifecycle` configuration block `ignoreChanges` argument. 17 // 18 // > **NOTE:** All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 19 // 20 // ## Example Usage 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 28 // "encoding/json" 29 // "fmt" 30 // 31 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudformation" 32 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 33 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 34 // 35 // ) 36 // 37 // func main() { 38 // pulumi.Run(func(ctx *pulumi.Context) error { 39 // aWSCloudFormationStackSetAdministrationRoleAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 40 // Statements: []iam.GetPolicyDocumentStatement{ 41 // { 42 // Actions: []string{ 43 // "sts:AssumeRole", 44 // }, 45 // Effect: pulumi.StringRef("Allow"), 46 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 47 // { 48 // Identifiers: []string{ 49 // "cloudformation.amazonaws.com", 50 // }, 51 // Type: "Service", 52 // }, 53 // }, 54 // }, 55 // }, 56 // }, nil) 57 // if err != nil { 58 // return err 59 // } 60 // aWSCloudFormationStackSetAdministrationRole, err := iam.NewRole(ctx, "AWSCloudFormationStackSetAdministrationRole", &iam.RoleArgs{ 61 // AssumeRolePolicy: pulumi.String(aWSCloudFormationStackSetAdministrationRoleAssumeRolePolicy.Json), 62 // Name: pulumi.String("AWSCloudFormationStackSetAdministrationRole"), 63 // }) 64 // if err != nil { 65 // return err 66 // } 67 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 68 // "Parameters": map[string]interface{}{ 69 // "VPCCidr": map[string]interface{}{ 70 // "Type": "String", 71 // "Default": "10.0.0.0/16", 72 // "Description": "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.", 73 // }, 74 // }, 75 // "Resources": map[string]interface{}{ 76 // "myVpc": map[string]interface{}{ 77 // "Type": "AWS::EC2::VPC", 78 // "Properties": map[string]interface{}{ 79 // "CidrBlock": map[string]interface{}{ 80 // "Ref": "VPCCidr", 81 // }, 82 // "Tags": []map[string]interface{}{ 83 // map[string]interface{}{ 84 // "Key": "Name", 85 // "Value": "Primary_CF_VPC", 86 // }, 87 // }, 88 // }, 89 // }, 90 // }, 91 // }) 92 // if err != nil { 93 // return err 94 // } 95 // json0 := string(tmpJSON0) 96 // example, err := cloudformation.NewStackSet(ctx, "example", &cloudformation.StackSetArgs{ 97 // AdministrationRoleArn: aWSCloudFormationStackSetAdministrationRole.Arn, 98 // Name: pulumi.String("example"), 99 // Parameters: pulumi.StringMap{ 100 // "VPCCidr": pulumi.String("10.0.0.0/16"), 101 // }, 102 // TemplateBody: pulumi.String(json0), 103 // }) 104 // if err != nil { 105 // return err 106 // } 107 // aWSCloudFormationStackSetAdministrationRoleExecutionPolicy := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ 108 // Statements: iam.GetPolicyDocumentStatementArray{ 109 // &iam.GetPolicyDocumentStatementArgs{ 110 // Actions: pulumi.StringArray{ 111 // pulumi.String("sts:AssumeRole"), 112 // }, 113 // Effect: pulumi.String("Allow"), 114 // Resources: pulumi.StringArray{ 115 // example.ExecutionRoleName.ApplyT(func(executionRoleName string) (string, error) { 116 // return fmt.Sprintf("arn:aws:iam::*:role/%v", executionRoleName), nil 117 // }).(pulumi.StringOutput), 118 // }, 119 // }, 120 // }, 121 // }, nil) 122 // _, err = iam.NewRolePolicy(ctx, "AWSCloudFormationStackSetAdministrationRole_ExecutionPolicy", &iam.RolePolicyArgs{ 123 // Name: pulumi.String("ExecutionPolicy"), 124 // Policy: aWSCloudFormationStackSetAdministrationRoleExecutionPolicy.ApplyT(func(aWSCloudFormationStackSetAdministrationRoleExecutionPolicy iam.GetPolicyDocumentResult) (*string, error) { 125 // return &aWSCloudFormationStackSetAdministrationRoleExecutionPolicy.Json, nil 126 // }).(pulumi.StringPtrOutput), 127 // Role: aWSCloudFormationStackSetAdministrationRole.Name, 128 // }) 129 // if err != nil { 130 // return err 131 // } 132 // return nil 133 // }) 134 // } 135 // 136 // ``` 137 // <!--End PulumiCodeChooser --> 138 // 139 // ## Import 140 // 141 // Import CloudFormation StackSets when acting a delegated administrator in a member account using the `name` and `call_as` values separated by a comma (`,`). For example: 142 // 143 // Using `pulumi import`, import CloudFormation StackSets using the `name`. For example: 144 // 145 // ```sh 146 // $ pulumi import aws:cloudformation/stackSet:StackSet example example 147 // ``` 148 // Using `pulumi import`, import CloudFormation StackSets when acting a delegated administrator in a member account using the `name` and `call_as` values separated by a comma (`,`). For example: 149 // 150 // ```sh 151 // $ pulumi import aws:cloudformation/stackSet:StackSet example example,DELEGATED_ADMIN 152 // ``` 153 type StackSet struct { 154 pulumi.CustomResourceState 155 156 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 157 AdministrationRoleArn pulumi.StringPtrOutput `pulumi:"administrationRoleArn"` 158 // Amazon Resource Name (ARN) of the StackSet. 159 Arn pulumi.StringOutput `pulumi:"arn"` 160 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 161 AutoDeployment StackSetAutoDeploymentPtrOutput `pulumi:"autoDeployment"` 162 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 163 CallAs pulumi.StringPtrOutput `pulumi:"callAs"` 164 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 165 Capabilities pulumi.StringArrayOutput `pulumi:"capabilities"` 166 // Description of the StackSet. 167 Description pulumi.StringPtrOutput `pulumi:"description"` 168 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 169 ExecutionRoleName pulumi.StringOutput `pulumi:"executionRoleName"` 170 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 171 ManagedExecution StackSetManagedExecutionPtrOutput `pulumi:"managedExecution"` 172 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 173 Name pulumi.StringOutput `pulumi:"name"` 174 // Preferences for how AWS CloudFormation performs a stack set update. 175 OperationPreferences StackSetOperationPreferencesPtrOutput `pulumi:"operationPreferences"` 176 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 177 Parameters pulumi.StringMapOutput `pulumi:"parameters"` 178 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 179 PermissionModel pulumi.StringPtrOutput `pulumi:"permissionModel"` 180 // Unique identifier of the StackSet. 181 StackSetId pulumi.StringOutput `pulumi:"stackSetId"` 182 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 183 Tags pulumi.StringMapOutput `pulumi:"tags"` 184 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 185 // 186 // Deprecated: Please use `tags` instead. 187 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 188 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 189 TemplateBody pulumi.StringOutput `pulumi:"templateBody"` 190 // 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: 460,800 bytes. Conflicts with `templateBody`. 191 TemplateUrl pulumi.StringPtrOutput `pulumi:"templateUrl"` 192 } 193 194 // NewStackSet registers a new resource with the given unique name, arguments, and options. 195 func NewStackSet(ctx *pulumi.Context, 196 name string, args *StackSetArgs, opts ...pulumi.ResourceOption) (*StackSet, error) { 197 if args == nil { 198 args = &StackSetArgs{} 199 } 200 201 opts = internal.PkgResourceDefaultOpts(opts) 202 var resource StackSet 203 err := ctx.RegisterResource("aws:cloudformation/stackSet:StackSet", name, args, &resource, opts...) 204 if err != nil { 205 return nil, err 206 } 207 return &resource, nil 208 } 209 210 // GetStackSet gets an existing StackSet resource's state with the given name, ID, and optional 211 // state properties that are used to uniquely qualify the lookup (nil if not required). 212 func GetStackSet(ctx *pulumi.Context, 213 name string, id pulumi.IDInput, state *StackSetState, opts ...pulumi.ResourceOption) (*StackSet, error) { 214 var resource StackSet 215 err := ctx.ReadResource("aws:cloudformation/stackSet:StackSet", name, id, state, &resource, opts...) 216 if err != nil { 217 return nil, err 218 } 219 return &resource, nil 220 } 221 222 // Input properties used for looking up and filtering StackSet resources. 223 type stackSetState struct { 224 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 225 AdministrationRoleArn *string `pulumi:"administrationRoleArn"` 226 // Amazon Resource Name (ARN) of the StackSet. 227 Arn *string `pulumi:"arn"` 228 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 229 AutoDeployment *StackSetAutoDeployment `pulumi:"autoDeployment"` 230 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 231 CallAs *string `pulumi:"callAs"` 232 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 233 Capabilities []string `pulumi:"capabilities"` 234 // Description of the StackSet. 235 Description *string `pulumi:"description"` 236 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 237 ExecutionRoleName *string `pulumi:"executionRoleName"` 238 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 239 ManagedExecution *StackSetManagedExecution `pulumi:"managedExecution"` 240 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 241 Name *string `pulumi:"name"` 242 // Preferences for how AWS CloudFormation performs a stack set update. 243 OperationPreferences *StackSetOperationPreferences `pulumi:"operationPreferences"` 244 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 245 Parameters map[string]string `pulumi:"parameters"` 246 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 247 PermissionModel *string `pulumi:"permissionModel"` 248 // Unique identifier of the StackSet. 249 StackSetId *string `pulumi:"stackSetId"` 250 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 251 Tags map[string]string `pulumi:"tags"` 252 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 253 // 254 // Deprecated: Please use `tags` instead. 255 TagsAll map[string]string `pulumi:"tagsAll"` 256 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 257 TemplateBody *string `pulumi:"templateBody"` 258 // 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: 460,800 bytes. Conflicts with `templateBody`. 259 TemplateUrl *string `pulumi:"templateUrl"` 260 } 261 262 type StackSetState struct { 263 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 264 AdministrationRoleArn pulumi.StringPtrInput 265 // Amazon Resource Name (ARN) of the StackSet. 266 Arn pulumi.StringPtrInput 267 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 268 AutoDeployment StackSetAutoDeploymentPtrInput 269 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 270 CallAs pulumi.StringPtrInput 271 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 272 Capabilities pulumi.StringArrayInput 273 // Description of the StackSet. 274 Description pulumi.StringPtrInput 275 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 276 ExecutionRoleName pulumi.StringPtrInput 277 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 278 ManagedExecution StackSetManagedExecutionPtrInput 279 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 280 Name pulumi.StringPtrInput 281 // Preferences for how AWS CloudFormation performs a stack set update. 282 OperationPreferences StackSetOperationPreferencesPtrInput 283 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 284 Parameters pulumi.StringMapInput 285 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 286 PermissionModel pulumi.StringPtrInput 287 // Unique identifier of the StackSet. 288 StackSetId pulumi.StringPtrInput 289 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 290 Tags pulumi.StringMapInput 291 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 292 // 293 // Deprecated: Please use `tags` instead. 294 TagsAll pulumi.StringMapInput 295 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 296 TemplateBody pulumi.StringPtrInput 297 // 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: 460,800 bytes. Conflicts with `templateBody`. 298 TemplateUrl pulumi.StringPtrInput 299 } 300 301 func (StackSetState) ElementType() reflect.Type { 302 return reflect.TypeOf((*stackSetState)(nil)).Elem() 303 } 304 305 type stackSetArgs struct { 306 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 307 AdministrationRoleArn *string `pulumi:"administrationRoleArn"` 308 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 309 AutoDeployment *StackSetAutoDeployment `pulumi:"autoDeployment"` 310 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 311 CallAs *string `pulumi:"callAs"` 312 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 313 Capabilities []string `pulumi:"capabilities"` 314 // Description of the StackSet. 315 Description *string `pulumi:"description"` 316 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 317 ExecutionRoleName *string `pulumi:"executionRoleName"` 318 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 319 ManagedExecution *StackSetManagedExecution `pulumi:"managedExecution"` 320 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 321 Name *string `pulumi:"name"` 322 // Preferences for how AWS CloudFormation performs a stack set update. 323 OperationPreferences *StackSetOperationPreferences `pulumi:"operationPreferences"` 324 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 325 Parameters map[string]string `pulumi:"parameters"` 326 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 327 PermissionModel *string `pulumi:"permissionModel"` 328 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 329 Tags map[string]string `pulumi:"tags"` 330 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 331 TemplateBody *string `pulumi:"templateBody"` 332 // 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: 460,800 bytes. Conflicts with `templateBody`. 333 TemplateUrl *string `pulumi:"templateUrl"` 334 } 335 336 // The set of arguments for constructing a StackSet resource. 337 type StackSetArgs struct { 338 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 339 AdministrationRoleArn pulumi.StringPtrInput 340 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 341 AutoDeployment StackSetAutoDeploymentPtrInput 342 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 343 CallAs pulumi.StringPtrInput 344 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 345 Capabilities pulumi.StringArrayInput 346 // Description of the StackSet. 347 Description pulumi.StringPtrInput 348 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 349 ExecutionRoleName pulumi.StringPtrInput 350 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 351 ManagedExecution StackSetManagedExecutionPtrInput 352 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 353 Name pulumi.StringPtrInput 354 // Preferences for how AWS CloudFormation performs a stack set update. 355 OperationPreferences StackSetOperationPreferencesPtrInput 356 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 357 Parameters pulumi.StringMapInput 358 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 359 PermissionModel pulumi.StringPtrInput 360 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 361 Tags pulumi.StringMapInput 362 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 363 TemplateBody pulumi.StringPtrInput 364 // 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: 460,800 bytes. Conflicts with `templateBody`. 365 TemplateUrl pulumi.StringPtrInput 366 } 367 368 func (StackSetArgs) ElementType() reflect.Type { 369 return reflect.TypeOf((*stackSetArgs)(nil)).Elem() 370 } 371 372 type StackSetInput interface { 373 pulumi.Input 374 375 ToStackSetOutput() StackSetOutput 376 ToStackSetOutputWithContext(ctx context.Context) StackSetOutput 377 } 378 379 func (*StackSet) ElementType() reflect.Type { 380 return reflect.TypeOf((**StackSet)(nil)).Elem() 381 } 382 383 func (i *StackSet) ToStackSetOutput() StackSetOutput { 384 return i.ToStackSetOutputWithContext(context.Background()) 385 } 386 387 func (i *StackSet) ToStackSetOutputWithContext(ctx context.Context) StackSetOutput { 388 return pulumi.ToOutputWithContext(ctx, i).(StackSetOutput) 389 } 390 391 // StackSetArrayInput is an input type that accepts StackSetArray and StackSetArrayOutput values. 392 // You can construct a concrete instance of `StackSetArrayInput` via: 393 // 394 // StackSetArray{ StackSetArgs{...} } 395 type StackSetArrayInput interface { 396 pulumi.Input 397 398 ToStackSetArrayOutput() StackSetArrayOutput 399 ToStackSetArrayOutputWithContext(context.Context) StackSetArrayOutput 400 } 401 402 type StackSetArray []StackSetInput 403 404 func (StackSetArray) ElementType() reflect.Type { 405 return reflect.TypeOf((*[]*StackSet)(nil)).Elem() 406 } 407 408 func (i StackSetArray) ToStackSetArrayOutput() StackSetArrayOutput { 409 return i.ToStackSetArrayOutputWithContext(context.Background()) 410 } 411 412 func (i StackSetArray) ToStackSetArrayOutputWithContext(ctx context.Context) StackSetArrayOutput { 413 return pulumi.ToOutputWithContext(ctx, i).(StackSetArrayOutput) 414 } 415 416 // StackSetMapInput is an input type that accepts StackSetMap and StackSetMapOutput values. 417 // You can construct a concrete instance of `StackSetMapInput` via: 418 // 419 // StackSetMap{ "key": StackSetArgs{...} } 420 type StackSetMapInput interface { 421 pulumi.Input 422 423 ToStackSetMapOutput() StackSetMapOutput 424 ToStackSetMapOutputWithContext(context.Context) StackSetMapOutput 425 } 426 427 type StackSetMap map[string]StackSetInput 428 429 func (StackSetMap) ElementType() reflect.Type { 430 return reflect.TypeOf((*map[string]*StackSet)(nil)).Elem() 431 } 432 433 func (i StackSetMap) ToStackSetMapOutput() StackSetMapOutput { 434 return i.ToStackSetMapOutputWithContext(context.Background()) 435 } 436 437 func (i StackSetMap) ToStackSetMapOutputWithContext(ctx context.Context) StackSetMapOutput { 438 return pulumi.ToOutputWithContext(ctx, i).(StackSetMapOutput) 439 } 440 441 type StackSetOutput struct{ *pulumi.OutputState } 442 443 func (StackSetOutput) ElementType() reflect.Type { 444 return reflect.TypeOf((**StackSet)(nil)).Elem() 445 } 446 447 func (o StackSetOutput) ToStackSetOutput() StackSetOutput { 448 return o 449 } 450 451 func (o StackSetOutput) ToStackSetOutputWithContext(ctx context.Context) StackSetOutput { 452 return o 453 } 454 455 // Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the `SELF_MANAGED` permission model. 456 func (o StackSetOutput) AdministrationRoleArn() pulumi.StringPtrOutput { 457 return o.ApplyT(func(v *StackSet) pulumi.StringPtrOutput { return v.AdministrationRoleArn }).(pulumi.StringPtrOutput) 458 } 459 460 // Amazon Resource Name (ARN) of the StackSet. 461 func (o StackSetOutput) Arn() pulumi.StringOutput { 462 return o.ApplyT(func(v *StackSet) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 463 } 464 465 // Configuration block containing the auto-deployment model for your StackSet. This can only be defined when using the `SERVICE_MANAGED` permission model. 466 func (o StackSetOutput) AutoDeployment() StackSetAutoDeploymentPtrOutput { 467 return o.ApplyT(func(v *StackSet) StackSetAutoDeploymentPtrOutput { return v.AutoDeployment }).(StackSetAutoDeploymentPtrOutput) 468 } 469 470 // Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: `SELF` (default), `DELEGATED_ADMIN`. 471 func (o StackSetOutput) CallAs() pulumi.StringPtrOutput { 472 return o.ApplyT(func(v *StackSet) pulumi.StringPtrOutput { return v.CallAs }).(pulumi.StringPtrOutput) 473 } 474 475 // A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`. 476 func (o StackSetOutput) Capabilities() pulumi.StringArrayOutput { 477 return o.ApplyT(func(v *StackSet) pulumi.StringArrayOutput { return v.Capabilities }).(pulumi.StringArrayOutput) 478 } 479 480 // Description of the StackSet. 481 func (o StackSetOutput) Description() pulumi.StringPtrOutput { 482 return o.ApplyT(func(v *StackSet) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 483 } 484 485 // Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole` when using the `SELF_MANAGED` permission model. This should not be defined when using the `SERVICE_MANAGED` permission model. 486 func (o StackSetOutput) ExecutionRoleName() pulumi.StringOutput { 487 return o.ApplyT(func(v *StackSet) pulumi.StringOutput { return v.ExecutionRoleName }).(pulumi.StringOutput) 488 } 489 490 // Configuration block to allow StackSets to perform non-conflicting operations concurrently and queues conflicting operations. 491 func (o StackSetOutput) ManagedExecution() StackSetManagedExecutionPtrOutput { 492 return o.ApplyT(func(v *StackSet) StackSetManagedExecutionPtrOutput { return v.ManagedExecution }).(StackSetManagedExecutionPtrOutput) 493 } 494 495 // Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. 496 func (o StackSetOutput) Name() pulumi.StringOutput { 497 return o.ApplyT(func(v *StackSet) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 498 } 499 500 // Preferences for how AWS CloudFormation performs a stack set update. 501 func (o StackSetOutput) OperationPreferences() StackSetOperationPreferencesPtrOutput { 502 return o.ApplyT(func(v *StackSet) StackSetOperationPreferencesPtrOutput { return v.OperationPreferences }).(StackSetOperationPreferencesPtrOutput) 503 } 504 505 // Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument. 506 func (o StackSetOutput) Parameters() pulumi.StringMapOutput { 507 return o.ApplyT(func(v *StackSet) pulumi.StringMapOutput { return v.Parameters }).(pulumi.StringMapOutput) 508 } 509 510 // Describes how the IAM roles required for your StackSet are created. Valid values: `SELF_MANAGED` (default), `SERVICE_MANAGED`. 511 func (o StackSetOutput) PermissionModel() pulumi.StringPtrOutput { 512 return o.ApplyT(func(v *StackSet) pulumi.StringPtrOutput { return v.PermissionModel }).(pulumi.StringPtrOutput) 513 } 514 515 // Unique identifier of the StackSet. 516 func (o StackSetOutput) StackSetId() pulumi.StringOutput { 517 return o.ApplyT(func(v *StackSet) pulumi.StringOutput { return v.StackSetId }).(pulumi.StringOutput) 518 } 519 520 // 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 `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 521 func (o StackSetOutput) Tags() pulumi.StringMapOutput { 522 return o.ApplyT(func(v *StackSet) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 523 } 524 525 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 526 // 527 // Deprecated: Please use `tags` instead. 528 func (o StackSetOutput) TagsAll() pulumi.StringMapOutput { 529 return o.ApplyT(func(v *StackSet) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 530 } 531 532 // String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`. 533 func (o StackSetOutput) TemplateBody() pulumi.StringOutput { 534 return o.ApplyT(func(v *StackSet) pulumi.StringOutput { return v.TemplateBody }).(pulumi.StringOutput) 535 } 536 537 // 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: 460,800 bytes. Conflicts with `templateBody`. 538 func (o StackSetOutput) TemplateUrl() pulumi.StringPtrOutput { 539 return o.ApplyT(func(v *StackSet) pulumi.StringPtrOutput { return v.TemplateUrl }).(pulumi.StringPtrOutput) 540 } 541 542 type StackSetArrayOutput struct{ *pulumi.OutputState } 543 544 func (StackSetArrayOutput) ElementType() reflect.Type { 545 return reflect.TypeOf((*[]*StackSet)(nil)).Elem() 546 } 547 548 func (o StackSetArrayOutput) ToStackSetArrayOutput() StackSetArrayOutput { 549 return o 550 } 551 552 func (o StackSetArrayOutput) ToStackSetArrayOutputWithContext(ctx context.Context) StackSetArrayOutput { 553 return o 554 } 555 556 func (o StackSetArrayOutput) Index(i pulumi.IntInput) StackSetOutput { 557 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StackSet { 558 return vs[0].([]*StackSet)[vs[1].(int)] 559 }).(StackSetOutput) 560 } 561 562 type StackSetMapOutput struct{ *pulumi.OutputState } 563 564 func (StackSetMapOutput) ElementType() reflect.Type { 565 return reflect.TypeOf((*map[string]*StackSet)(nil)).Elem() 566 } 567 568 func (o StackSetMapOutput) ToStackSetMapOutput() StackSetMapOutput { 569 return o 570 } 571 572 func (o StackSetMapOutput) ToStackSetMapOutputWithContext(ctx context.Context) StackSetMapOutput { 573 return o 574 } 575 576 func (o StackSetMapOutput) MapIndex(k pulumi.StringInput) StackSetOutput { 577 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StackSet { 578 return vs[0].(map[string]*StackSet)[vs[1].(string)] 579 }).(StackSetOutput) 580 } 581 582 func init() { 583 pulumi.RegisterInputType(reflect.TypeOf((*StackSetInput)(nil)).Elem(), &StackSet{}) 584 pulumi.RegisterInputType(reflect.TypeOf((*StackSetArrayInput)(nil)).Elem(), StackSetArray{}) 585 pulumi.RegisterInputType(reflect.TypeOf((*StackSetMapInput)(nil)).Elem(), StackSetMap{}) 586 pulumi.RegisterOutputType(StackSetOutput{}) 587 pulumi.RegisterOutputType(StackSetArrayOutput{}) 588 pulumi.RegisterOutputType(StackSetMapOutput{}) 589 }