Class: AWSCDK::CfnStackSetProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
cfn_stack_set_props.rb

Overview

Properties for defining a CfnStackSet.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(permission_model:, stack_set_name:, administration_role_arn: nil, auto_deployment: nil, call_as: nil, capabilities: nil, description: nil, execution_role_name: nil, managed_execution: nil, operation_preferences: nil, parameters: nil, stack_instances_group: nil, tags: nil, template_body: nil, template_url: nil) ⇒ CfnStackSetProps

Returns a new instance of CfnStackSetProps.

Parameters:

  • permission_model (String)

    Describes how the IAM roles required for StackSet operations are created.

  • stack_set_name (String)

    The name to associate with the StackSet.

  • administration_role_arn (String, AWSCDK::Interfaces::AWSIAM::IRoleRef, nil) (defaults to: nil)

    The Amazon Resource Number (ARN) of the IAM role to use to create this StackSet.

  • auto_deployment (AWSCDK::IResolvable, AWSCDK::CfnStackSet::AutoDeploymentProperty, nil) (defaults to: nil)

    Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).

  • call_as (String, nil) (defaults to: nil)

    Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

  • capabilities (Array<String>, nil) (defaults to: nil)

    The capabilities that are allowed in the StackSet.

  • description (String, nil) (defaults to: nil)

    A description of the StackSet.

  • execution_role_name (String, AWSCDK::Interfaces::AWSIAM::IRoleRef, nil) (defaults to: nil)

    The name of the IAM execution role to use to create the StackSet.

  • managed_execution (Object, nil) (defaults to: nil)

    Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.

  • operation_preferences (AWSCDK::IResolvable, AWSCDK::CfnStackSet::OperationPreferencesProperty, nil) (defaults to: nil)

    The user-specified preferences for how CloudFormation performs a StackSet operation.

  • parameters (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::CfnStackSet::ParameterProperty>, nil) (defaults to: nil)

    The input parameters for the StackSet template.

  • stack_instances_group (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::CfnStackSet::StackInstancesProperty>, nil) (defaults to: nil)

    A group of stack instances with parameters in some specific accounts and Regions.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    Key-value pairs to associate with this stack.

  • template_body (String, nil) (defaults to: nil)

    The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.

  • template_url (String, nil) (defaults to: nil)

    The URL of a file that contains the template body.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'cfn_stack_set_props.rb', line 24

def initialize(permission_model:, stack_set_name:, administration_role_arn: nil, auto_deployment: nil, call_as: nil, capabilities: nil, description: nil, execution_role_name: nil, managed_execution: nil, operation_preferences: nil, parameters: nil, stack_instances_group: nil, tags: nil, template_body: nil, template_url: nil)
  @permission_model = permission_model
  Jsii::Type.check_type(@permission_model, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "permissionModel")
  @stack_set_name = stack_set_name
  Jsii::Type.check_type(@stack_set_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "stackSetName")
  @administration_role_arn = administration_role_arn
  Jsii::Type.check_type(@administration_role_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "administrationRoleArn") unless @administration_role_arn.nil?
  @auto_deployment = auto_deployment.is_a?(Hash) ? ::AWSCDK::CfnStackSet::AutoDeploymentProperty.new(**auto_deployment.transform_keys(&:to_sym)) : auto_deployment
  Jsii::Type.check_type(@auto_deployment, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLkNmblN0YWNrU2V0LkF1dG9EZXBsb3ltZW50UHJvcGVydHkifV19fQ==")), "autoDeployment") unless @auto_deployment.nil?
  @call_as = call_as
  Jsii::Type.check_type(@call_as, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "callAs") unless @call_as.nil?
  @capabilities = capabilities
  Jsii::Type.check_type(@capabilities, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "capabilities") unless @capabilities.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @execution_role_name = execution_role_name
  Jsii::Type.check_type(@execution_role_name, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "executionRoleName") unless @execution_role_name.nil?
  @managed_execution = managed_execution
  Jsii::Type.check_type(@managed_execution, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "managedExecution") unless @managed_execution.nil?
  @operation_preferences = operation_preferences.is_a?(Hash) ? ::AWSCDK::CfnStackSet::OperationPreferencesProperty.new(**operation_preferences.transform_keys(&:to_sym)) : operation_preferences
  Jsii::Type.check_type(@operation_preferences, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLkNmblN0YWNrU2V0Lk9wZXJhdGlvblByZWZlcmVuY2VzUHJvcGVydHkifV19fQ==")), "operationPreferences") unless @operation_preferences.nil?
  @parameters = parameters
  Jsii::Type.check_type(@parameters, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5TdGFja1NldC5QYXJhbWV0ZXJQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "parameters") unless @parameters.nil?
  @stack_instances_group = stack_instances_group
  Jsii::Type.check_type(@stack_instances_group, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5TdGFja1NldC5TdGFja0luc3RhbmNlc1Byb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "stackInstancesGroup") unless @stack_instances_group.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @template_body = template_body
  Jsii::Type.check_type(@template_body, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "templateBody") unless @template_body.nil?
  @template_url = template_url
  Jsii::Type.check_type(@template_url, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "templateUrl") unless @template_url.nil?
end

Instance Attribute Details

#administration_role_arnString, ... (readonly)

The Amazon Resource Number (ARN) of the IAM role to use to create this StackSet.

Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific StackSets within the same administrator account.

Use customized administrator roles to control which users or groups can manage specific StackSets within the same administrator account. For more information, see Grant self-managed permissions in the CloudFormation User Guide .

Valid only if the permissions model is SELF_MANAGED .



82
83
84
# File 'cfn_stack_set_props.rb', line 82

def administration_role_arn
  @administration_role_arn
end

#auto_deploymentAWSCDK::IResolvable, ... (readonly)

Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).

For more information, see Enable or disable automatic deployments for StackSets in AWS Organizations in the CloudFormation User Guide .

Required if the permissions model is SERVICE_MANAGED . (Not used with self-managed permissions.)



91
92
93
# File 'cfn_stack_set_props.rb', line 91

def auto_deployment
  @auto_deployment
end

#call_asString? (readonly)

Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for StackSets with self-managed permissions.

  • To create a StackSet with service-managed permissions while signed in to the management account, specify SELF .
  • To create a StackSet with service-managed permissions while signed in to a delegated administrator account, specify DELEGATED_ADMIN .

Your AWS account must be registered as a delegated admin in the management account. For more information, see Register a delegated administrator in the CloudFormation User Guide .

StackSets with service-managed permissions are created in the management account, including StackSets that are created by delegated administrators.

Valid only if the permissions model is SERVICE_MANAGED .



107
108
109
# File 'cfn_stack_set_props.rb', line 107

def call_as
  @call_as
end

#capabilitiesArray<String>? (readonly)

The capabilities that are allowed in the StackSet.

Some StackSet templates might include resources that can affect permissions in your AWS account —for example, by creating new IAM users. For more information, see Acknowledging IAM resources in CloudFormation templates in the CloudFormation User Guide .



114
115
116
# File 'cfn_stack_set_props.rb', line 114

def capabilities
  @capabilities
end

#descriptionString? (readonly)

A description of the StackSet.



119
120
121
# File 'cfn_stack_set_props.rb', line 119

def description
  @description
end

#execution_role_nameString, ... (readonly)

The name of the IAM execution role to use to create the StackSet.

If you don't specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the StackSet operation.

Valid only if the permissions model is SELF_MANAGED .

Pattern : [a-zA-Z_0-9+=,.@-]+



130
131
132
# File 'cfn_stack_set_props.rb', line 130

def execution_role_name
  @execution_role_name
end

#managed_executionObject? (readonly)

Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.

When active, StackSets performs non-conflicting operations concurrently and queues conflicting operations. After conflicting operations finish, StackSets starts queued operations in request order.

If there are already running or queued operations, StackSets queues all incoming operations even if they are non-conflicting.

You can't modify your StackSet's execution configuration while there are running or queued operations for that StackSet.

When inactive (default), StackSets performs one operation at a time in request order.



143
144
145
# File 'cfn_stack_set_props.rb', line 143

def managed_execution
  @managed_execution
end

#operation_preferencesAWSCDK::IResolvable, ... (readonly)

The user-specified preferences for how CloudFormation performs a StackSet operation.



148
149
150
# File 'cfn_stack_set_props.rb', line 148

def operation_preferences
  @operation_preferences
end

#parametersAWSCDK::IResolvable, ... (readonly)

The input parameters for the StackSet template.



153
154
155
# File 'cfn_stack_set_props.rb', line 153

def parameters
  @parameters
end

#permission_modelString (readonly)

Describes how the IAM roles required for StackSet operations are created.

  • With SELF_MANAGED permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see Grant self-managed permissions in the CloudFormation User Guide .
  • With SERVICE_MANAGED permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations . For more information, see Activate trusted access for StackSets with AWS Organizations in the CloudFormation User Guide .


64
65
66
# File 'cfn_stack_set_props.rb', line 64

def permission_model
  @permission_model
end

#stack_instances_groupAWSCDK::IResolvable, ... (readonly)

A group of stack instances with parameters in some specific accounts and Regions.



158
159
160
# File 'cfn_stack_set_props.rb', line 158

def stack_instances_group
  @stack_instances_group
end

#stack_set_nameString (readonly)

The name to associate with the StackSet.

The name must be unique in the Region where you create your StackSet.



71
72
73
# File 'cfn_stack_set_props.rb', line 71

def stack_set_name
  @stack_set_name
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

Key-value pairs to associate with this stack.

CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags.

If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. If you specify an empty value, CloudFormation removes all associated tags.



167
168
169
# File 'cfn_stack_set_props.rb', line 167

def tags
  @tags
end

#template_bodyString? (readonly)

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.

You must include either TemplateURL or TemplateBody in a StackSet, but you can't use both. Dynamic references in the TemplateBody may not work correctly in all cases. It's recommended to pass templates that contain dynamic references through TemplateUrl instead.



174
175
176
# File 'cfn_stack_set_props.rb', line 174

def template_body
  @template_body
end

#template_urlString? (readonly)

The URL of a file that contains the template body.

The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https:// .

Conditional: You must specify only one of the following parameters: TemplateBody , TemplateURL .



183
184
185
# File 'cfn_stack_set_props.rb', line 183

def template_url
  @template_url
end

Class Method Details

.jsii_propertiesObject



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'cfn_stack_set_props.rb', line 185

def self.jsii_properties
  {
    :permission_model => "permissionModel",
    :stack_set_name => "stackSetName",
    :administration_role_arn => "administrationRoleArn",
    :auto_deployment => "autoDeployment",
    :call_as => "callAs",
    :capabilities => "capabilities",
    :description => "description",
    :execution_role_name => "executionRoleName",
    :managed_execution => "managedExecution",
    :operation_preferences => "operationPreferences",
    :parameters => "parameters",
    :stack_instances_group => "stackInstancesGroup",
    :tags => "tags",
    :template_body => "templateBody",
    :template_url => "templateUrl",
  }
end

Instance Method Details

#to_jsiiObject



205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'cfn_stack_set_props.rb', line 205

def to_jsii
  result = {}
  result.merge!({
    "permissionModel" => @permission_model,
    "stackSetName" => @stack_set_name,
    "administrationRoleArn" => @administration_role_arn,
    "autoDeployment" => @auto_deployment,
    "callAs" => @call_as,
    "capabilities" => @capabilities,
    "description" => @description,
    "executionRoleName" => @execution_role_name,
    "managedExecution" => @managed_execution,
    "operationPreferences" => @operation_preferences,
    "parameters" => @parameters,
    "stackInstancesGroup" => @stack_instances_group,
    "tags" => @tags,
    "templateBody" => @template_body,
    "templateUrl" => @template_url,
  })
  result.compact
end