Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CfnInclude_IsCfnElement ¶
func CfnInclude_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnInclude_IsConstruct ¶
func CfnInclude_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func NewCfnInclude_Override ¶
func NewCfnInclude_Override(c CfnInclude, scope constructs.Construct, id *string, props *CfnIncludeProps)
Types ¶
type CfnInclude ¶
type CfnInclude interface {
awscdk.CfnElement
// Returns: the stack trace of the point where this Resource was created from, sourced
// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
// node +internal+ entries filtered.
CreationStack() *[]*string
// The logical ID for this CloudFormation stack element.
//
// The logical ID of the element
// is calculated from the path of the resource node in the construct tree.
//
// To override this value, use `overrideLogicalId(newLogicalId)`.
//
// Returns: the logical ID as a stringified token. This value will only get
// resolved during synthesis.
LogicalId() *string
// The tree node.
Node() constructs.Node
// The stack in which this element is defined.
//
// CfnElements must be defined within a stack scope (directly or indirectly).
Stack() awscdk.Stack
// Returns the CfnCondition object from the 'Conditions' section of the CloudFormation template with the given name.
//
// Any modifications performed on that object will be reflected in the resulting CDK template.
//
// If a Condition with the given name is not present in the template,
// throws an exception.
GetCondition(conditionName *string) awscdk.CfnCondition
// Returns the CfnHook object from the 'Hooks' section of the included CloudFormation template with the given logical ID.
//
// Any modifications performed on the returned object will be reflected in the resulting CDK template.
//
// If a Hook with the given logical ID is not present in the template,
// an exception will be thrown.
GetHook(hookLogicalId *string) awscdk.CfnHook
// Returns the CfnMapping object from the 'Mappings' section of the included template.
//
// Any modifications performed on that object will be reflected in the resulting CDK template.
//
// If a Mapping with the given name is not present in the template,
// an exception will be thrown.
GetMapping(mappingName *string) awscdk.CfnMapping
// Returns a loaded NestedStack with name logicalId.
//
// For a nested stack to be returned by this method,
// it must be specified either in the `CfnIncludeProps.loadNestedStacks` property,
// or through the `loadNestedStack` method.
GetNestedStack(logicalId *string) *IncludedNestedStack
// Returns the CfnOutput object from the 'Outputs' section of the included template.
//
// Any modifications performed on that object will be reflected in the resulting CDK template.
//
// If an Output with the given name is not present in the template,
// throws an exception.
GetOutput(logicalId *string) awscdk.CfnOutput
// Returns the CfnParameter object from the 'Parameters' section of the included template.
//
// Any modifications performed on that object will be reflected in the resulting CDK template.
//
// If a Parameter with the given name is not present in the template,
// throws an exception.
GetParameter(parameterName *string) awscdk.CfnParameter
// Returns the low-level CfnResource from the template with the given logical ID.
//
// Any modifications performed on that resource will be reflected in the resulting CDK template.
//
// The returned object will be of the proper underlying class;
// you can always cast it to the correct type in your code:
//
// // assume the template contains an AWS::S3::Bucket with logical ID 'Bucket'
// const cfnBucket = cfnTemplate.getResource('Bucket') as s3.CfnBucket;
// // cfnBucket is of type s3.CfnBucket
//
// If the template does not contain a resource with the given logical ID,
// an exception will be thrown.
GetResource(logicalId *string) awscdk.CfnResource
// Returns the CfnRule object from the 'Rules' section of the CloudFormation template with the given name.
//
// Any modifications performed on that object will be reflected in the resulting CDK template.
//
// If a Rule with the given name is not present in the template,
// an exception will be thrown.
GetRule(ruleName *string) awscdk.CfnRule
// Includes a template for a child stack inside of this parent template.
//
// A child with this logical ID must exist in the template,
// and be of type AWS::CloudFormation::Stack.
// This is equivalent to specifying the value in the `CfnIncludeProps.loadNestedStacks`
// property on object construction.
//
// Returns: the same `IncludedNestedStack` object that `getNestedStack` returns for this logical ID.
LoadNestedStack(logicalId *string, nestedStackProps *CfnIncludeProps) *IncludedNestedStack
// Overrides the auto-generated logical ID with a specific ID.
OverrideLogicalId(newLogicalId *string)
// Returns a string representation of this construct.
ToString() *string
}
Construct to import an existing CloudFormation template file into a CDK application.
All resources defined in the template file can be retrieved by calling the `getResource` method. Any modifications made on the returned resource objects will be reflected in the resulting CDK template.
Example:
cfnTemplate := cfn_inc.NewCfnInclude(this, jsii.String("Template"), &CfnIncludeProps{
TemplateFile: jsii.String("my-template.json"),
})
func NewCfnInclude ¶
func NewCfnInclude(scope constructs.Construct, id *string, props *CfnIncludeProps) CfnInclude
type CfnIncludeProps ¶
type CfnIncludeProps struct {
// Path to the template file.
//
// Both JSON and YAML template formats are supported.
TemplateFile *string `field:"required" json:"templateFile" yaml:"templateFile"`
// Specifies whether to allow cyclical references, effectively disregarding safeguards meant to avoid undeployable templates.
//
// This should only be set to true in the case of templates utilizing cloud transforms (e.g. SAM) that
// after processing the transform will no longer contain any circular references.
// Default: - will throw an error on detecting any cyclical references.
//
AllowCyclicalReferences *bool `field:"optional" json:"allowCyclicalReferences" yaml:"allowCyclicalReferences"`
// Specifies a list of LogicalIDs for resources that will be included in the CDK Stack, but will not be parsed and converted to CDK types.
//
// This allows you to use CFN templates
// that rely on Intrinsic placement that `cfn-include`
// would otherwise reject, such as non-primitive values in resource update policies.
// Default: - All resources are hydrated.
//
DehydratedResources *[]*string `field:"optional" json:"dehydratedResources" yaml:"dehydratedResources"`
// Specifies the template files that define nested stacks that should be included.
//
// If your template specifies a stack that isn't included here, it won't be created as a NestedStack
// resource, and it won't be accessible from the `CfnInclude.getNestedStack` method
// (but will still be accessible from the `CfnInclude.getResource` method).
//
// If you include a stack here with an ID that isn't in the template,
// or is in the template but is not a nested stack,
// template creation will fail and an error will be thrown.
// Default: - no nested stacks will be included.
//
LoadNestedStacks *map[string]*CfnIncludeProps `field:"optional" json:"loadNestedStacks" yaml:"loadNestedStacks"`
// Specifies parameters to be replaced by the values in this mapping.
//
// Any parameters in the template that aren't specified here will be left unmodified.
// If you include a parameter here with an ID that isn't in the template,
// template creation will fail and an error will be thrown.
//
// If you are importing a parameter from a live stack, we cannot know the value of that
// parameter. You will need to supply a value for your parameters, else the default
// value will be used.
// Default: - parameters will retain their original definitions.
//
Parameters *map[string]interface{} `field:"optional" json:"parameters" yaml:"parameters"`
// Whether the resources should have the same logical IDs in the resulting CDK template as they did in the original CloudFormation template file.
//
// If you're vending a Construct using an existing CloudFormation template,
// make sure to pass this as `false`.
//
// **Note**: regardless of whether this option is true or false,
// the `CfnInclude.getResource` and related methods always uses the original logical ID of the resource/element,
// as specified in the template file.
// Default: true.
//
PreserveLogicalIds *bool `field:"optional" json:"preserveLogicalIds" yaml:"preserveLogicalIds"`
}
Construction properties of `CfnInclude`.
Example:
parentTemplate := cfn_inc.NewCfnInclude(this, jsii.String("ParentStack"), &CfnIncludeProps{
TemplateFile: jsii.String("path/to/my-parent-template.json"),
LoadNestedStacks: map[string]CfnIncludeProps{
"ChildStack": &CfnIncludeProps{
"templateFile": jsii.String("path/to/my-nested-template.json"),
},
},
})
type IncludedNestedStack ¶
type IncludedNestedStack struct {
// The CfnInclude that represents the template, which can be used to access Resources and other template elements.
IncludedTemplate CfnInclude `field:"required" json:"includedTemplate" yaml:"includedTemplate"`
// The NestedStack object which represents the scope of the template.
Stack awscdk.NestedStack `field:"required" json:"stack" yaml:"stack"`
}
The type returned from `CfnInclude.getNestedStack`. Contains both the NestedStack object and CfnInclude representations of the child stack.
Example:
var parentTemplate CfnInclude
includedChildStack := parentTemplate.GetNestedStack(jsii.String("ChildStack"))
childStack := includedChildStack.Stack
childTemplate := includedChildStack.IncludedTemplate

