Class: AWSCDK::NestedStackSynthesizer
- Inherits:
-
StackSynthesizer
- Object
- StackSynthesizer
- AWSCDK::NestedStackSynthesizer
- Defined in:
- nested_stack_synthesizer.rb
Overview
Synthesizer for a nested stack.
Forwards all calls to the parent stack's synthesizer.
This synthesizer is automatically used for NestedStack constructs.
App builder do not need to use this class directly.
Class Method Summary collapse
Instance Method Summary collapse
-
#add_bootstrap_version_rule(required_version, bootstrap_stack_version_ssm_parameter) ⇒ void
Add a CfnRule to the bound stack that checks whether an SSM parameter exceeds a given version.
-
#add_docker_image_asset(asset) ⇒ AWSCDK::DockerImageAssetLocation
Register a Docker Image Asset.
-
#add_file_asset(asset) ⇒ AWSCDK::FileAssetLocation
Register a File Asset.
-
#bind(stack) ⇒ void
Bind to the stack this environment is going to be used on.
-
#bootstrap_qualifier ⇒ String?
The qualifier used to bootstrap this stack.
-
#bound_stack ⇒ AWSCDK::Stack
Retrieve the bound stack.
-
#cloud_formation_execution_role ⇒ String?
The role that is passed to CloudFormation to execute the change set.
-
#cloud_formation_location_from_docker_image_asset(dest) ⇒ AWSCDK::DockerImageAssetLocation
Turn a docker asset location into a CloudFormation representation of that location.
-
#cloud_formation_location_from_file_asset(location) ⇒ AWSCDK::FileAssetLocation
Turn a file asset location into a CloudFormation representation of that location.
-
#emit_artifact(session, options = nil) ⇒ void
Write the CloudFormation stack artifact to the session.
-
#emit_stack_artifact(stack, session, options = nil) ⇒ void
deprecated
Deprecated.
Use
emitArtifactinstead -
#initialize(parent_deployment) ⇒ NestedStackSynthesizer
constructor
A new instance of NestedStackSynthesizer.
-
#lookup_role ⇒ String?
The role used to lookup for this stack.
-
#synthesize(session) ⇒ void
Synthesize the associated stack to the session.
-
#synthesize_stack_template(stack, session) ⇒ void
deprecated
Deprecated.
Use
synthesizeTemplateinstead -
#synthesize_template(session, lookup_role_arn = nil, lookup_role_external_id = nil, lookup_role_additional_options = nil) ⇒ AWSCDK::FileAssetSource
Write the stack template to the given session.
Constructor Details
#initialize(parent_deployment) ⇒ NestedStackSynthesizer
Returns a new instance of NestedStackSynthesizer.
14 15 16 17 |
# File 'nested_stack_synthesizer.rb', line 14 def initialize(parent_deployment) Jsii::Type.check_type(parent_deployment, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3RhY2tTeW50aGVzaXplciJ9")), "parentDeployment") Jsii::Object.instance_method(:initialize).bind(self).call(parent_deployment) end |
Class Method Details
.jsii_overridable_methods ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'nested_stack_synthesizer.rb', line 19 def self.jsii_overridable_methods { :bound_stack => { kind: :property, name: "boundStack", is_optional: false }, :bootstrap_qualifier => { kind: :property, name: "bootstrapQualifier", is_optional: true }, :cloud_formation_execution_role => { kind: :property, name: "cloudFormationExecutionRole", is_optional: true }, :lookup_role => { kind: :property, name: "lookupRole", is_optional: true }, :add_bootstrap_version_rule => { kind: :method, name: "addBootstrapVersionRule", is_optional: false }, :add_docker_image_asset => { kind: :method, name: "addDockerImageAsset", is_optional: false }, :add_file_asset => { kind: :method, name: "addFileAsset", is_optional: false }, :bind => { kind: :method, name: "bind", is_optional: false }, :cloud_formation_location_from_docker_image_asset => { kind: :method, name: "cloudFormationLocationFromDockerImageAsset", is_optional: false }, :cloud_formation_location_from_file_asset => { kind: :method, name: "cloudFormationLocationFromFileAsset", is_optional: false }, :emit_artifact => { kind: :method, name: "emitArtifact", is_optional: false }, :emit_stack_artifact => { kind: :method, name: "emitStackArtifact", is_optional: false }, :synthesize => { kind: :method, name: "synthesize", is_optional: false }, :synthesize_stack_template => { kind: :method, name: "synthesizeStackTemplate", is_optional: false }, :synthesize_template => { kind: :method, name: "synthesizeTemplate", is_optional: false }, } end |
Instance Method Details
#add_bootstrap_version_rule(required_version, bootstrap_stack_version_ssm_parameter) ⇒ void
This method returns an undefined value.
Add a CfnRule to the bound stack that checks whether an SSM parameter exceeds a given version.
This will modify the template, so must be called before the stack is synthesized.
76 77 78 79 80 |
# File 'nested_stack_synthesizer.rb', line 76 def add_bootstrap_version_rule(required_version, bootstrap_stack_version_ssm_parameter) Jsii::Type.check_type(required_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "requiredVersion") Jsii::Type.check_type(bootstrap_stack_version_ssm_parameter, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bootstrapStackVersionSsmParameter") jsii_call_method("addBootstrapVersionRule", [required_version, bootstrap_stack_version_ssm_parameter]) end |
#add_docker_image_asset(asset) ⇒ AWSCDK::DockerImageAssetLocation
Register a Docker Image Asset.
Returns the parameters that can be used to refer to the asset inside the template.
The synthesizer must rely on some out-of-band mechanism to make sure the given files
are actually placed in the returned location before the deployment happens. This can
be by writing the instructions to the asset manifest (for use by the cdk-assets tool),
by relying on the CLI to upload files (legacy behavior), or some other operator controlled
mechanism.
94 95 96 97 98 |
# File 'nested_stack_synthesizer.rb', line 94 def add_docker_image_asset(asset) asset = asset.is_a?(Hash) ? ::AWSCDK::DockerImageAssetSource.new(**asset.transform_keys(&:to_sym)) : asset Jsii::Type.check_type(asset, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5Eb2NrZXJJbWFnZUFzc2V0U291cmNlIn0=")), "asset") jsii_call_method("addDockerImageAsset", [asset]) end |
#add_file_asset(asset) ⇒ AWSCDK::FileAssetLocation
Register a File Asset.
Returns the parameters that can be used to refer to the asset inside the template.
The synthesizer must rely on some out-of-band mechanism to make sure the given files
are actually placed in the returned location before the deployment happens. This can
be by writing the instructions to the asset manifest (for use by the cdk-assets tool),
by relying on the CLI to upload files (legacy behavior), or some other operator controlled
mechanism.
112 113 114 115 116 |
# File 'nested_stack_synthesizer.rb', line 112 def add_file_asset(asset) asset = asset.is_a?(Hash) ? ::AWSCDK::FileAssetSource.new(**asset.transform_keys(&:to_sym)) : asset Jsii::Type.check_type(asset, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5GaWxlQXNzZXRTb3VyY2UifQ==")), "asset") jsii_call_method("addFileAsset", [asset]) end |
#bind(stack) ⇒ void
This method returns an undefined value.
Bind to the stack this environment is going to be used on.
Must be called before any of the other methods are called.
124 125 126 127 |
# File 'nested_stack_synthesizer.rb', line 124 def bind(stack) Jsii::Type.check_type(stack, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TdGFjayJ9")), "stack") jsii_call_method("bind", [stack]) end |
#bootstrap_qualifier ⇒ String?
The qualifier used to bootstrap this stack.
51 52 53 |
# File 'nested_stack_synthesizer.rb', line 51 def bootstrap_qualifier() jsii_get_property("bootstrapQualifier") end |
#bound_stack ⇒ AWSCDK::Stack
Retrieve the bound stack.
Fails if the stack hasn't been bound yet.
44 45 46 |
# File 'nested_stack_synthesizer.rb', line 44 def bound_stack() jsii_get_property("boundStack") end |
#cloud_formation_execution_role ⇒ String?
The role that is passed to CloudFormation to execute the change set.
58 59 60 |
# File 'nested_stack_synthesizer.rb', line 58 def cloud_formation_execution_role() jsii_get_property("cloudFormationExecutionRole") end |
#cloud_formation_location_from_docker_image_asset(dest) ⇒ AWSCDK::DockerImageAssetLocation
Turn a docker asset location into a CloudFormation representation of that location.
If any of the fields contain placeholders, the result will be wrapped in a Fn.sub.
135 136 137 138 139 |
# File 'nested_stack_synthesizer.rb', line 135 def cloud_formation_location_from_docker_image_asset(dest) dest = dest.is_a?(Hash) ? ::AWSCDK::CloudAssemblySchema::DockerImageDestination.new(**dest.transform_keys(&:to_sym)) : dest Jsii::Type.check_type(dest, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5jbG91ZF9hc3NlbWJseV9zY2hlbWEuRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiJ9")), "dest") jsii_call_method("cloudFormationLocationFromDockerImageAsset", [dest]) end |
#cloud_formation_location_from_file_asset(location) ⇒ AWSCDK::FileAssetLocation
Turn a file asset location into a CloudFormation representation of that location.
If any of the fields contain placeholders, the result will be wrapped in a Fn.sub.
147 148 149 150 151 |
# File 'nested_stack_synthesizer.rb', line 147 def cloud_formation_location_from_file_asset(location) location = location.is_a?(Hash) ? ::AWSCDK::CloudAssemblySchema::FileDestination.new(**location.transform_keys(&:to_sym)) : location Jsii::Type.check_type(location, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5jbG91ZF9hc3NlbWJseV9zY2hlbWEuRmlsZURlc3RpbmF0aW9uIn0=")), "location") jsii_call_method("cloudFormationLocationFromFileAsset", [location]) end |
#emit_artifact(session, options = nil) ⇒ void
This method returns an undefined value.
Write the CloudFormation stack artifact to the session.
Use default settings to add a CloudFormationStackArtifact artifact to the given synthesis session. The Stack artifact will control the settings for the CloudFormation deployment.
162 163 164 165 166 167 |
# File 'nested_stack_synthesizer.rb', line 162 def emit_artifact(session, = nil) Jsii::Type.check_type(session, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3ludGhlc2lzU2Vzc2lvbiJ9")), "session") = .is_a?(Hash) ? ::AWSCDK::SynthesizeStackArtifactOptions.new(**.transform_keys(&:to_sym)) : Jsii::Type.check_type(, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TeW50aGVzaXplU3RhY2tBcnRpZmFjdE9wdGlvbnMifQ==")), "options") unless .nil? jsii_call_method("emitArtifact", [session, ]) end |
#emit_stack_artifact(stack, session, options = nil) ⇒ void
Use emitArtifact instead
This method returns an undefined value.
Write the stack artifact to the session.
Use default settings to add a CloudFormationStackArtifact artifact to the given synthesis session.
179 180 181 182 183 184 185 |
# File 'nested_stack_synthesizer.rb', line 179 def emit_stack_artifact(stack, session, = nil) Jsii::Type.check_type(stack, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TdGFjayJ9")), "stack") Jsii::Type.check_type(session, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3ludGhlc2lzU2Vzc2lvbiJ9")), "session") = .is_a?(Hash) ? ::AWSCDK::SynthesizeStackArtifactOptions.new(**.transform_keys(&:to_sym)) : Jsii::Type.check_type(, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TeW50aGVzaXplU3RhY2tBcnRpZmFjdE9wdGlvbnMifQ==")), "options") unless .nil? jsii_call_method("emitStackArtifact", [stack, session, ]) end |
#lookup_role ⇒ String?
The role used to lookup for this stack.
65 66 67 |
# File 'nested_stack_synthesizer.rb', line 65 def lookup_role() jsii_get_property("lookupRole") end |
#synthesize(session) ⇒ void
This method returns an undefined value.
Synthesize the associated stack to the session.
191 192 193 194 |
# File 'nested_stack_synthesizer.rb', line 191 def synthesize(session) Jsii::Type.check_type(session, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3ludGhlc2lzU2Vzc2lvbiJ9")), "session") jsii_call_method("synthesize", [session]) end |
#synthesize_stack_template(stack, session) ⇒ void
Use synthesizeTemplate instead
This method returns an undefined value.
Have the stack write out its template.
202 203 204 205 206 |
# File 'nested_stack_synthesizer.rb', line 202 def synthesize_stack_template(stack, session) Jsii::Type.check_type(stack, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TdGFjayJ9")), "stack") Jsii::Type.check_type(session, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3ludGhlc2lzU2Vzc2lvbiJ9")), "session") jsii_call_method("synthesizeStackTemplate", [stack, session]) end |
#synthesize_template(session, lookup_role_arn = nil, lookup_role_external_id = nil, lookup_role_additional_options = nil) ⇒ AWSCDK::FileAssetSource
Write the stack template to the given session.
Return a descriptor that represents the stack template as a file asset
source, for adding to an asset manifest (if desired). This can be used to
have the asset manifest system (cdk-assets) upload the template to S3
using the appropriate role, so that afterwards only a CloudFormation
deployment is necessary.
If the template is uploaded as an asset, the stack_template_asset_object_url
property should be set when calling emitArtifact.
If the template is NOT uploaded as an asset first and the template turns
out to be >50KB, it will need to be uploaded to S3 anyway. At that point
the credentials will be the same identity that is doing the UpdateStack
call, which may not have the right permissions to write to S3.
229 230 231 232 233 234 235 |
# File 'nested_stack_synthesizer.rb', line 229 def synthesize_template(session, lookup_role_arn = nil, lookup_role_external_id = nil, = nil) Jsii::Type.check_type(session, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5JU3ludGhlc2lzU2Vzc2lvbiJ9")), "session") Jsii::Type.check_type(lookup_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "lookupRoleArn") unless lookup_role_arn.nil? Jsii::Type.check_type(lookup_role_external_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "lookupRoleExternalId") unless lookup_role_external_id.nil? Jsii::Type.check_type(, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6ImFueSJ9LCJraW5kIjoibWFwIn19")), "lookupRoleAdditionalOptions") unless .nil? jsii_call_method("synthesizeTemplate", [session, lookup_role_arn, lookup_role_external_id, ]) end |