@aws-cdk/core
- Version 1.204.0
- Published
- 5.69 MB
- 8 dependencies
- Apache-2.0 license
Install
npm i @aws-cdk/core
yarn add @aws-cdk/core
pnpm add @aws-cdk/core
Overview
AWS Cloud Development Kit Core Library
Index
Variables
Functions
- attachCustomSynthesis()
- canInspect()
- captureStackTrace()
- cfnTagToCloudFormation()
- dateToCloudFormation()
- hashMapper()
- hashValidator()
- isResolvableObject()
- listMapper()
- listValidator()
- propertyValidator()
- requiredValidator()
- requireProperty()
- rootPathTo()
- unionMapper()
- unionValidator()
- validateBoolean()
- validateCfnTag()
- validateDate()
- validateNumber()
- validateObject()
- validateString()
- withResolved()
Classes
DefaultStackSynthesizer
- addDockerImageAsset()
- addFileAsset()
- bind()
- cloudFormationExecutionRoleArn
- DEFAULT_BOOTSTRAP_STACK_VERSION_SSM_PARAMETER
- DEFAULT_CLOUDFORMATION_ROLE_ARN
- DEFAULT_DEPLOY_ROLE_ARN
- DEFAULT_DOCKER_ASSET_PREFIX
- DEFAULT_FILE_ASSET_KEY_ARN_EXPORT_NAME
- DEFAULT_FILE_ASSET_PREFIX
- DEFAULT_FILE_ASSET_PUBLISHING_ROLE_ARN
- DEFAULT_FILE_ASSETS_BUCKET_NAME
- DEFAULT_IMAGE_ASSET_PUBLISHING_ROLE_ARN
- DEFAULT_IMAGE_ASSETS_REPOSITORY_NAME
- DEFAULT_LOOKUP_ROLE_ARN
- DEFAULT_QUALIFIER
- deployRoleArn
- stack
- synthesize()
- synthesizeStackTemplate()
Stack
- account
- addDependency()
- addDockerImageAsset()
- addFileAsset()
- addTransform()
- allocateLogicalId()
- artifactId
- availabilityZones
- bundlingRequired
- dependencies
- environment
- exportValue()
- formatArn()
- getLogicalId()
- isStack()
- nested
- nestedStackParent
- nestedStackResource
- notificationArns
- of()
- parentStack
- parseArn()
- partition
- prepareCrossReference()
- region
- regionalFact()
- renameLogicalId()
- reportMissingContext()
- reportMissingContextKey()
- resolve()
- splitArn()
- stackId
- stackName
- synthesizer
- tags
- templateFile
- templateOptions
- terminationProtection
- toJsonString()
- urlSuffix
Interfaces
DefaultStackSynthesizerProps
- bootstrapStackVersionSsmParameter
- bucketPrefix
- cloudFormationExecutionRole
- deployRoleArn
- deployRoleExternalId
- dockerTagPrefix
- fileAssetKeyArnExportName
- fileAssetPublishingExternalId
- fileAssetPublishingRoleArn
- fileAssetsBucketName
- generateBootstrapVersionRule
- imageAssetPublishingExternalId
- imageAssetPublishingRoleArn
- imageAssetsRepositoryName
- lookupRoleArn
- lookupRoleExternalId
- qualifier
- useLookupRoleForStackOperations
Enums
Type Aliases
Namespaces
Variables
variable booleanToCloudFormation
const booleanToCloudFormation: Mapper;
variable BOOTSTRAP_QUALIFIER_CONTEXT
const BOOTSTRAP_QUALIFIER_CONTEXT: string;
variable numberToCloudFormation
const numberToCloudFormation: Mapper;
variable objectToCloudFormation
const objectToCloudFormation: Mapper;
variable STACK_RESOURCE_LIMIT_CONTEXT
const STACK_RESOURCE_LIMIT_CONTEXT: string;
variable stringToCloudFormation
const stringToCloudFormation: Mapper;
variable VALIDATION_SUCCESS
const VALIDATION_SUCCESS: ValidationResult;
Functions
function attachCustomSynthesis
attachCustomSynthesis: ( construct: Construct, synthesis: ICustomSynthesis) => void;
Add a custom synthesis for the given construct
When the construct is being synthesized, this allows it to add additional items into the Cloud Assembly output.
This feature is intended for use by official AWS CDK libraries only; 3rd party library authors and CDK users should not use this function. That's why it's not exposed via jsii.
function canInspect
canInspect: (x: any) => boolean;
Return whether this object can be validated at all
True unless it's undefined or a CloudFormation intrinsic
function captureStackTrace
captureStackTrace: (below?: Function, limit?: number) => string[];
Captures the current process' stack trace.
Stack traces are often invaluable tools to help diagnose problems, however their capture is a rather expensive operation, and the stack traces can be large. Consequently, users are stronly advised to condition capturing stack traces to specific user opt-in.
Stack traces will only be captured if the
CDK_DEBUG
environment variable is set to'true'
or1
.Parameter below
an optional function starting from which stack frames will be ignored. Defaults to the
captureStackTrace
function itself.Parameter limit
and optional upper bound to the number of stack frames to be captured. If not provided, this defaults to
Number.MAX_SAFE_INTEGER
, effectively meaning "no limit".Returns
the captured stack trace, as an array of stack frames.
function cfnTagToCloudFormation
cfnTagToCloudFormation: (x: any) => any;
Turn a tag object into the proper CloudFormation representation
function dateToCloudFormation
dateToCloudFormation: (x?: Date) => any;
The date needs to be formatted as an ISO date in UTC
Some usage sites require a date, some require a timestamp. We'll always output a timestamp and hope the parser on the other end is smart enough to ignore the time part... (?)
function hashMapper
hashMapper: (elementMapper: Mapper) => Mapper;
function hashValidator
hashValidator: (elementValidator: Validator) => Validator;
Return a hash validator based on the given element validator
function isResolvableObject
isResolvableObject: (x: any) => x is IResolvable;
function listMapper
listMapper: (elementMapper: Mapper) => Mapper;
function listValidator
listValidator: (elementValidator: Validator) => Validator;
Return a list validator based on the given element validator
function propertyValidator
propertyValidator: (propName: string, validator: Validator) => Validator;
Decorate a validator with a message clarifying the property the failure is for.
function requiredValidator
requiredValidator: (x: any) => ValidationResult;
Return a validator that will fail if the passed property is not present
Does not distinguish between the property actually not being present, vs being present but 'null' or 'undefined' (courtesy of JavaScript), which is generally the behavior that we want.
Empty strings are considered "present"--don't know if this agrees with how CloudFormation looks at the world.
function requireProperty
requireProperty: ( props: { [name: string]: any }, name: string, context: Construct) => any;
Require a property from a property bag.
Parameter props
the property bag from which a property is required.
Parameter name
the name of the required property.
Parameter typeName
the name of the construct type that requires the property
Returns
the value of ``props[name]``
Throws
if the property ``name`` is not present in ``props``.
function rootPathTo
rootPathTo: (construct: IConstruct, ancestor?: IConstruct) => IConstruct[];
Return the construct root path of the given construct relative to the given ancestor
If no ancestor is given or the ancestor is not found, return the entire root path.
function unionMapper
unionMapper: (validators: Validator[], mappers: Mapper[]) => Mapper;
Return a union mapper
Takes a list of validators and a list of mappers, which should correspond pairwise.
The mapper of the first successful validator will be called.
function unionValidator
unionValidator: (...validators: Validator[]) => Validator;
Validates if any of the given validators matches
We add either/or words to the front of the error mesages so that they read more nicely. Example:
Properties not correct for 'FunctionProps' codeUri: not one of the possible types either: properties not correct for 'S3LocationProperty' bucket: required but missing key: required but missing version: required but missing or: '3' should be a 'string'
function validateBoolean
validateBoolean: (x: any) => ValidationResult;
function validateCfnTag
validateCfnTag: (x: any) => ValidationResult;
function validateDate
validateDate: (x: any) => ValidationResult;
function validateNumber
validateNumber: (x: any) => ValidationResult;
function validateObject
validateObject: (x: any) => ValidationResult;
function validateString
validateString: (x: any) => ValidationResult;
function withResolved
withResolved: { <A>(a: A, fn: (a: A) => void): void; <A, B>(a: A, b: B, fn: (a: A, b: B) => void): void; <A, B, C>(a: A, b: B, c: C, fn: (a: A, b: B, c: C) => void): void;};
Call the given function only if all given values are resolved
Exported as a function since it will be used by TypeScript modules, but can't be exposed via JSII because of the generics.
Classes
class Annotations
class Annotations {}
Includes API for attaching annotations such as warning messages to constructs.
method addDeprecation
addDeprecation: (api: string, message: string) => void;
Adds a deprecation warning for a specific API.
Deprecations will be added only once per construct as a warning and will be deduplicated based on the
api
.If the environment variable
CDK_BLOCK_DEPRECATIONS
is set, this method will throw an error instead with the deprecation message.Parameter api
The API being deprecated in the format
module.Class.property
(e.g.@aws-cdk/core.Construct.node
).Parameter message
The deprecation message to display, with information about alternatives.
method addError
addError: (message: string) => void;
Adds an { "error": } metadata entry to this construct. The toolkit will fail deployment of any stack that has errors reported against it.
Parameter message
The error message.
method addInfo
addInfo: (message: string) => void;
Adds an info metadata entry to this construct.
The CLI will display the info message when apps are synthesized.
Parameter message
The info message.
method addWarning
addWarning: (message: string) => void;
Adds a warning metadata entry to this construct.
The CLI will display the warning when an app is synthesized, or fail if run in --strict mode.
Parameter message
The warning message.
method of
static of: (scope: IConstruct) => Annotations;
Returns the annotations API for a construct scope.
Parameter scope
The scope
class App
class App extends Stage {}
A construct which represents an entire CDK app. This construct is normally the root of the construct tree.
You would normally define an
App
instance in your program's entrypoint, then define constructs where the app is used as the parent scope.After all the child constructs are defined within the app, you should call
app.synth()
which will emit a "cloud assembly" from this app into the directory specified byoutdir
. Cloud assemblies includes artifacts such as CloudFormation templates and assets that are needed to deploy this app into the AWS cloud.See Also
https://docs.aws.amazon.com/cdk/latest/guide/apps.html
constructor
constructor(props?: AppProps);
Initializes a CDK application.
Parameter props
initialization properties
method isApp
static isApp: (obj: any) => obj is App;
Checks if an object is an instance of the
App
class.Parameter obj
The object to evaluate
Returns
true
ifobj
is anApp
.
class Arn
class Arn {}
method extractResourceName
static extractResourceName: (arn: string, resourceType: string) => string;
Extract the full resource name from an ARN
Necessary for resource names (paths) that may contain the separator, like
arn:aws:iam::111111111111:role/path/to/role/name
.Only works if we statically know the expected
resourceType
beforehand, since we're going to use that to split the string on ':/' (and take the right-hand side).We can't extract the 'resourceType' from the ARN at hand, because CloudFormation Expressions only allow literals in the 'separator' argument to
{ Fn::Split }
, and so it can't be{ Fn::Select: [5, { Fn::Split: [':', ARN] }}
.Only necessary for ARN formats for which the type-name separator is
/
.
method format
static format: (components: ArnComponents, stack?: Stack) => string;
Creates an ARN from components.
If
partition
,region
oraccount
are not specified, the stack's partition, region and account will be used.If any component is the empty string, an empty string will be inserted into the generated ARN at the location that component corresponds to.
The ARN will be formatted as follows:
arn:{partition}:{service}:{region}:{account}:{resource}{sep}{resource-name}
The required ARN pieces that are omitted will be taken from the stack that the 'scope' is attached to. If all ARN pieces are supplied, the supplied scope can be 'undefined'.
method parse
static parse: ( arn: string, sepIfToken?: string, hasName?: boolean) => ArnComponents;
Given an ARN, parses it and returns components.
IF THE ARN IS A CONCRETE STRING...
...it will be parsed and validated. The separator (
sep
) will be set to '/' if the 6th component includes a '/', in which case,resource
will be set to the value before the '/' andresourceName
will be the rest. In case there is no '/',resource
will be set to the 6th components andresourceName
will be set to the rest of the string.IF THE ARN IS A TOKEN...
...it cannot be validated, since we don't have the actual value yet at the time of this function call. You will have to supply
sepIfToken
and whether or not ARNs of the expected format usually have resource names in order to parse it properly. The resultingArnComponents
object will contain tokens for the subexpressions of the ARN, not string literals.If the resource name could possibly contain the separator char, the actual resource name cannot be properly parsed. This only occurs if the separator char is '/', and happens for example for S3 object ARNs, IAM Role ARNs, IAM OIDC Provider ARNs, etc. To properly extract the resource name from a Tokenized ARN, you must know the resource type and call
Arn.extractResourceName
.Parameter arn
The ARN to parse
Parameter sepIfToken
The separator used to separate resource from resourceName
Parameter hasName
Whether there is a name component in the ARN at all. For example, SNS Topics ARNs have the 'resource' component contain the topic name, and no 'resourceName' component.
Returns
an ArnComponents object which allows access to the various components of the ARN.
Deprecated
use split instead
method split
static split: (arn: string, arnFormat: ArnFormat) => ArnComponents;
Splits the provided ARN into its components. Works both if 'arn' is a string like 'arn:aws:s3:::bucket', and a Token representing a dynamic CloudFormation expression (in which case the returned components will also be dynamic CloudFormation expressions, encoded as Tokens).
Parameter arn
the ARN to split into its components
Parameter arnFormat
the expected format of 'arn' - depends on what format the service 'arn' represents uses
class Aspects
class Aspects {}
Aspects can be applied to CDK tree scopes and can operate on the tree before synthesis.
property aspects
readonly aspects: IAspect[];
The list of aspects which were directly applied on this scope.
method add
add: (aspect: IAspect) => void;
Adds an aspect to apply this scope before synthesis.
Parameter aspect
The aspect to add.
method of
static of: (scope: IConstruct) => Aspects;
Returns the
Aspects
object associated with a construct scope.Parameter scope
The scope for which these aspects will apply.
class AssetStaging
class AssetStaging extends CoreConstruct {}
Stages a file or directory from a location on the file system into a staging directory.
This is controlled by the context key 'aws:cdk:asset-staging' and enabled by the CLI by default in order to ensure that when the CDK app exists, all assets are available for deployment. Otherwise, if an app references assets in temporary locations, those will not be available when it exists (see https://github.com/aws/aws-cdk/issues/1716).
The
stagedPath
property is a stringified token that represents the location of the file or directory after staging. It will be resolved only during the "prepare" stage and may be either the original path or the staged path depending on the context setting.The file/directory are staged based on their content hash (fingerprint). This means that only if content was changed, copy will happen.
constructor
constructor(scope: Construct, id: string, props: AssetStagingProps);
property absoluteStagedPath
readonly absoluteStagedPath: string;
Absolute path to the asset data.
If asset staging is disabled, this will just be the source path or a temporary directory used for bundling.
If asset staging is enabled it will be the staged path.
IMPORTANT: If you are going to call
addFileAsset()
, userelativeStagedPath()
instead.
property assetHash
readonly assetHash: string;
A cryptographic hash of the asset.
property BUNDLING_INPUT_DIR
static readonly BUNDLING_INPUT_DIR: string;
The directory inside the bundling container into which the asset sources will be mounted.
property BUNDLING_OUTPUT_DIR
static readonly BUNDLING_OUTPUT_DIR: string;
The directory inside the bundling container into which the bundled output should be written.
property isArchive
readonly isArchive: boolean;
Whether this asset is an archive (zip or jar).
property packaging
readonly packaging: FileAssetPackaging;
How this asset should be packaged.
property sourceHash
readonly sourceHash: string;
A cryptographic hash of the asset.
Deprecated
see
assetHash
.
property sourcePath
readonly sourcePath: string;
The absolute path of the asset as it was referenced by the user.
property stagedPath
readonly stagedPath: string;
Absolute path to the asset data.
If asset staging is disabled, this will just be the source path or a temporary directory used for bundling.
If asset staging is enabled it will be the staged path.
IMPORTANT: If you are going to call
addFileAsset()
, userelativeStagedPath()
instead.Deprecated
- Use
absoluteStagedPath
instead.
method clearAssetHashCache
static clearAssetHashCache: () => void;
Clears the asset hash cache
method relativeStagedPath
relativeStagedPath: (stack: Stack) => string;
Return the path to the staged asset, relative to the Cloud Assembly (manifest) directory of the given stack
Only returns a relative path if the asset was staged, returns an absolute path if it was not staged.
A bundled asset might end up in the outDir and still not count as "staged"; if asset staging is disabled we're technically expected to reference source directories, but we don't have a source directory for the bundled outputs (as the bundle output is written to a temporary directory). Nevertheless, we will still return an absolute path.
A non-obvious directory layout may look like this:
CLOUD ASSEMBLY ROOT+-- asset.12345abcdef/+-- assembly-Stage+-- MyStack.template.json+-- MyStack.assets.json <- will contain { "path": "../asset.12345abcdef" }
class Aws
class Aws {}
Accessor for pseudo parameters
Since pseudo parameters need to be anchored to a stack somewhere in the construct tree, this class takes an scope parameter; the pseudo parameter values can be obtained as properties from an scoped object.
property ACCOUNT_ID
static readonly ACCOUNT_ID: string;
property NO_VALUE
static readonly NO_VALUE: string;
property NOTIFICATION_ARNS
static readonly NOTIFICATION_ARNS: string[];
property PARTITION
static readonly PARTITION: string;
property REGION
static readonly REGION: string;
property STACK_ID
static readonly STACK_ID: string;
property STACK_NAME
static readonly STACK_NAME: string;
property URL_SUFFIX
static readonly URL_SUFFIX: string;
class BootstraplessSynthesizer
class BootstraplessSynthesizer extends DefaultStackSynthesizer {}
Synthesizer that reuses bootstrap roles from a different region
A special synthesizer that behaves similarly to
DefaultStackSynthesizer
, but doesn't require bootstrapping the environment it operates in. Instead, it will re-use the Roles that were created for a different region (which is possible because IAM is a global service).However, it will not assume asset buckets or repositories have been created, and therefore does not support assets.
Used by the CodePipeline construct for the support stacks needed for cross-region replication S3 buckets. App builders do not need to use this synthesizer directly.
constructor
constructor(props: BootstraplessSynthesizerProps);
method addDockerImageAsset
addDockerImageAsset: ( _asset: DockerImageAssetSource) => DockerImageAssetLocation;
method addFileAsset
addFileAsset: (_asset: FileAssetSource) => FileAssetLocation;
method synthesize
synthesize: (session: ISynthesisSession) => void;
class BundlingDockerImage
class BundlingDockerImage {}
A Docker image used for asset bundling
Deprecated
use DockerImage
constructor
protected constructor(image: string, _imageHash?: string);
Parameter image
The Docker image
property image
readonly image: string;
method cp
cp: (imagePath: string, outputPath?: string) => string;
Copies a file or directory out of the Docker image to the local filesystem.
If
outputPath
is omitted the destination path is a temporary directory.Parameter imagePath
the path in the Docker image
Parameter outputPath
the destination path for the copy operation
Returns
the destination path
method fromAsset
static fromAsset: ( path: string, options?: DockerBuildOptions) => BundlingDockerImage;
Reference an image that's built directly from sources on disk.
Parameter path
The path to the directory containing the Docker file
Parameter options
Docker build options
Deprecated
use DockerImage.fromBuild()
method fromRegistry
static fromRegistry: (image: string) => DockerImage;
Reference an image on DockerHub or another online registry.
Parameter image
the image name
method run
run: (options?: DockerRunOptions) => void;
Runs a Docker image
method toJSON
toJSON: () => string;
Provides a stable representation of this image for JSON serialization.
The overridden image name if set or image hash name in that order
class CfnCodeDeployBlueGreenHook
class CfnCodeDeployBlueGreenHook extends CfnHook {}
A CloudFormation Hook for CodeDeploy blue-green ECS deployments.
See Also
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html#blue-green-template-reference
constructor
constructor( scope: Construct, id: string, props: CfnCodeDeployBlueGreenHookProps);
Creates a new CodeDeploy blue-green ECS Hook.
Parameter scope
the scope to create the hook in (usually the containing Stack object)
Parameter id
the identifier of the construct - will be used to generate the logical ID of the Hook
Parameter props
the properties of the Hook
property additionalOptions
additionalOptions: CfnCodeDeployBlueGreenAdditionalOptions;
Additional options for the blue/green deployment.
- no additional options
property applications
applications: CfnCodeDeployBlueGreenApplication[];
Properties of the Amazon ECS applications being deployed.
property lifecycleEventHooks
lifecycleEventHooks: CfnCodeDeployBlueGreenLifecycleEventHooks;
Use lifecycle event hooks to specify a Lambda function that CodeDeploy can call to validate a deployment. You can use the same function or a different one for deployment lifecycle events. Following completion of the validation tests, the Lambda CfnCodeDeployBlueGreenLifecycleEventHooks.afterAllowTraffic function calls back CodeDeploy and delivers a result of 'Succeeded' or 'Failed'.
- no lifecycle event hooks
property serviceRole
serviceRole: string;
The IAM Role for CloudFormation to use to perform blue-green deployments.
property trafficRoutingConfig
trafficRoutingConfig: CfnTrafficRoutingConfig;
Traffic routing configuration settings.
- time-based canary traffic shifting, with a 15% step percentage and a five minute bake time
method renderProperties
protected renderProperties: (_props?: { [p: string]: any }) => { [p: string]: any;};
class CfnCondition
class CfnCondition extends CfnElement implements ICfnConditionExpression, IResolvable {}
Represents a CloudFormation condition, for resources which must be conditionally created and the determination must be made at deploy time.
constructor
constructor(scope: Construct, id: string, props?: CfnConditionProps);
Build a new condition. The condition must be constructed with a condition token, that the condition is based on.
property expression
expression?: ICfnConditionExpression;
The condition statement.
method resolve
resolve: (_context: IResolveContext) => any;
Synthesizes the condition.
class CfnCustomResource
class CfnCustomResource extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::CustomResource
In a CloudFormation template, you use the
AWS::CloudFormation::CustomResource
orCustom:: *String*
resource type to specify custom resources.Custom resources provide a way for you to write custom provisioning logic in CloudFormation template and have CloudFormation run it during a stack operation, such as when you create, update or delete a stack. For more information, see [Custom resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html) .
> If you use the [VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) feature, custom resources in the VPC must have access to CloudFormation -specific Amazon Simple Storage Service ( Amazon S3 ) buckets. Custom resources must send responses to a presigned Amazon S3 URL. If they can't send responses to Amazon S3 , CloudFormation won't receive a response and the stack operation fails. For more information, see [Setting up VPC endpoints for AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-vpce-bucketnames.html) .
AWS::CloudFormation::CustomResource external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnCustomResourceProps);
Create a new
AWS::CloudFormation::CustomResource
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property serviceToken
serviceToken: string;
> Only one property is defined by AWS for a custom resource:
ServiceToken
. All other properties are defined by the service provider.The service token that was given to the template developer by the service provider to access the service, such as an Amazon SNS topic ARN or Lambda function ARN. The service token must be from the same Region in which you are creating the stack.
Updates aren't supported.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnDynamicReference
class CfnDynamicReference extends Intrinsic {}
References a dynamically retrieved value
This is a Construct so that subclasses will (eventually) be able to attach metadata to themselves without having to change call signatures.
See Also
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html
constructor
constructor(service: CfnDynamicReferenceService, key: string);
class CfnElement
abstract class CfnElement extends CoreConstruct {}
An element of a CloudFormation stack.
constructor
constructor(scope: Construct, id: string);
Creates an entity and binds it to a tree. Note that the root of the tree must be a Stack object (not just any Root).
Parameter scope
The parent construct
Parameter props
Construct properties
property creationStack
readonly creationStack: string[];
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.
property logicalId
readonly logicalId: 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.
property stack
readonly stack: Stack;
The stack in which this element is defined. CfnElements must be defined within a stack scope (directly or indirectly).
method isCfnElement
static isCfnElement: (x: any) => x is CfnElement;
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.
method overrideLogicalId
overrideLogicalId: (newLogicalId: string) => void;
Overrides the auto-generated logical ID with a specific ID.
Parameter newLogicalId
The new logical ID to use for this stack element.
class CfnHook
class CfnHook extends CfnElement {}
Represents a CloudFormation resource.
constructor
constructor(scope: Construct, id: string, props: CfnHookProps);
Creates a new Hook object.
property type
readonly type: string;
The type of the hook (for example, "AWS::CodeDeploy::BlueGreen").
method renderProperties
protected renderProperties: (props?: { [key: string]: any }) => { [key: string]: any;};
class CfnHookDefaultVersion
class CfnHookDefaultVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::HookDefaultVersion
The
HookDefaultVersion
resource specifies the default version of the hook. The default version of the hook is used in CloudFormation operations for this AWS account and AWS Region .AWS::CloudFormation::HookDefaultVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html
constructor
constructor( scope: cdk.Construct, id: string, props?: cdk.CfnHookDefaultVersionProps);
Create a new
AWS::CloudFormation::HookDefaultVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Number (ARN) of the activated extension, in this account and Region. Arn
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property typeName
typeName: string;
The name of the hook.
You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typename
property typeVersionArn
typeVersionArn: string;
The version ID of the type configuration.
You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typeversionarn
property versionId
versionId: string;
The version ID of the type specified.
You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-versionid
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnHookTypeConfig
class CfnHookTypeConfig extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::HookTypeConfig
The
HookTypeConfig
resource specifies the configuration of a hook.AWS::CloudFormation::HookTypeConfig external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnHookTypeConfigProps);
Create a new
AWS::CloudFormation::HookTypeConfig
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrConfigurationArn
readonly attrConfigurationArn: string;
The Amazon Resource Number (ARN) of the activated hook type configuration, in this account and Region. ConfigurationArn
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property configuration
configuration: string;
Specifies the activated hook type configuration, in this AWS account and AWS Region .
You must specify either
TypeName
andConfiguration
orTypeARN
andConfiguration
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configuration
property configurationAlias
configurationAlias: string;
Specifies the activated hook type configuration, in this AWS account and AWS Region .
Defaults to
default
alias. Hook types currently support default configuration alias.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configurationalias
property typeArn
typeArn: string;
The Amazon Resource Number (ARN) for the hook to set
Configuration
for.You must specify either
TypeName
andConfiguration
orTypeARN
andConfiguration
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typearn
property typeName
typeName: string;
The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of
Organization::Service::Hook
.You must specify either
TypeName
andConfiguration
orTypeARN
andConfiguration
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typename
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnHookVersion
class CfnHookVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::HookVersion
The
HookVersion
resource publishes new or first hook version to the AWS CloudFormation registry.AWS::CloudFormation::HookVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnHookVersionProps);
Create a new
AWS::CloudFormation::HookVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Name (ARN) of the hook. Arn
property attrIsDefaultVersion
readonly attrIsDefaultVersion: cdk.IResolvable;
Whether the specified hook version is set as the default version. IsDefaultVersion
property attrTypeArn
readonly attrTypeArn: string;
The Amazon Resource Number (ARN) assigned to this version of the hook. TypeArn
property attrVersionId
readonly attrVersionId: string;
The ID of this version of the hook. VersionId
property attrVisibility
readonly attrVisibility: string;
The scope at which the resource is visible and usable in CloudFormation operations.
Valid values include:
-
PRIVATE
: The resource is only visible and usable within the account in which it's registered. CloudFormation marks any resources you register asPRIVATE
. -PUBLIC
: The resource is publicly visible and usable within any Amazon account. Visibility
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property executionRoleArn
executionRoleArn: string;
The Amazon Resource Name (ARN) of the task execution role that grants the hook permission.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-executionrolearn
property loggingConfig
loggingConfig: cdk.IResolvable | cdk.CfnHookVersion.LoggingConfigProperty;
Contains logging configuration information for an extension.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-loggingconfig
property schemaHandlerPackage
schemaHandlerPackage: string;
A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register.
For information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide for Extension Development* .
> The user registering the resource must be able to access the package in the S3 bucket. That's, the user must have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide* .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-schemahandlerpackage
property typeName
typeName: string;
The unique name for your hook. Specifies a three-part namespace for your hook, with a recommended pattern of
Organization::Service::Hook
.> The following organization namespaces are reserved and can't be used in your hook type names: > > -
Alexa
> -AMZN
> -Amazon
> -ASK
> -AWS
> -Custom
> -Dev
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-typename
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnInclude
class CfnInclude extends CfnElement {}
Includes a CloudFormation template into a stack. All elements of the template will be merged into the current stack, together with any elements created programmatically.
Deprecated
use the CfnInclude class from the cloudformation-include module instead
constructor
constructor(scope: Construct, id: string, props: CfnIncludeProps);
Creates an adopted template construct. The template will be incorporated into the stack as-is with no changes at all. This means that logical IDs of entities within this template may conflict with logical IDs of entities that are part of the stack.
Parameter scope
The parent construct of this template
Parameter id
The ID of this construct
Parameter props
Initialization properties.
property template
readonly template: {};
The included template.
class CfnJson
class CfnJson extends CoreConstruct implements IResolvable {}
Captures a synthesis-time JSON object a CloudFormation reference which resolves during deployment to the resolved values of the JSON object.
The main use case for this is to overcome a limitation in CloudFormation that does not allow using intrinsic functions as dictionary keys (because dictionary keys in JSON must be strings). Specifically this is common in IAM conditions such as
StringEquals: { lhs: "rhs" }
where you want "lhs" to be a reference.This object is resolvable, so it can be used as a value.
This construct is backed by a custom resource.
constructor
constructor(scope: Construct, id: string, props: CfnJsonProps);
property creationStack
readonly creationStack: string[];
property value
readonly value: Reference;
An Fn::GetAtt to the JSON object passed through
value
and resolved during synthesis.Normally there is no need to use this property since
CfnJson
is an IResolvable, so it can be simply used as a value.
method resolve
resolve: (_: IResolveContext) => any;
method toJSON
toJSON: () => string;
This is required in case someone JSON.stringifys an object which refrences this object. Otherwise, we'll get a cyclic JSON reference.
class CfnMacro
class CfnMacro extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::Macro
The
AWS::CloudFormation::Macro
resource is a CloudFormation resource type that creates a CloudFormation macro to perform custom processing on CloudFormation templates. For more information, see [Using AWS CloudFormation macros to perform custom processing on templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) .AWS::CloudFormation::Macro external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnMacroProps);
Create a new
AWS::CloudFormation::Macro
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property description
description: string;
A description of the macro.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-description
property functionName
functionName: string;
The Amazon Resource Name (ARN) of the underlying AWS Lambda function that you want AWS CloudFormation to invoke when the macro is run.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-functionname
property logGroupName
logGroupName: string;
The CloudWatch Logs group to which AWS CloudFormation sends error logging information when invoking the macro's underlying AWS Lambda function.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-loggroupname
property logRoleArn
logRoleArn: string;
The ARN of the role AWS CloudFormation should assume when sending log entries to CloudWatch Logs .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-logrolearn
property name
name: string;
The name of the macro. The name of the macro must be unique across all macros in the account.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-name
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnMapping
class CfnMapping extends CfnRefElement {}
Represents a CloudFormation mapping.
constructor
constructor(scope: Construct, id: string, props?: CfnMappingProps);
method findInMap
findInMap: (key1: string, key2: string) => string;
Returns
A reference to a value in the map based on the two keys.
method setValue
setValue: (key1: string, key2: string, value: any) => void;
Sets a value in the map based on the two keys.
class CfnModuleDefaultVersion
class CfnModuleDefaultVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::ModuleDefaultVersion
Specifies the default version of a module. The default version of the module will be used in CloudFormation operations for this account and Region.
To register a module version, use the
[AWS::CloudFormation::ModuleVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html)
resource.For more information using modules, see [Using modules to encapsulate and reuse resource configurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html) and [Registering extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-register) in the *AWS CloudFormation User Guide* . For information on developing modules, see [Developing modules](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/modules.html) in the *AWS CloudFormation CLI User Guide* .
AWS::CloudFormation::ModuleDefaultVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html
constructor
constructor( scope: cdk.Construct, id: string, props?: cdk.CfnModuleDefaultVersionProps);
Create a new
AWS::CloudFormation::ModuleDefaultVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property arn
arn: string;
The Amazon Resource Name (ARN) of the module version to set as the default version.
Conditional: You must specify either
Arn
, orModuleName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-arn
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property moduleName
moduleName: string;
The name of the module.
Conditional: You must specify either
Arn
, orModuleName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-modulename
property versionId
versionId: string;
The ID for the specific version of the module.
Conditional: You must specify either
Arn
, orModuleName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-versionid
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnModuleVersion
class CfnModuleVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::ModuleVersion
Registers the specified version of the module with the CloudFormation service. Registering a module makes it available for use in CloudFormation templates in your AWS account and Region.
To specify a module version as the default version, use the
[AWS::CloudFormation::ModuleDefaultVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html)
resource.For more information using modules, see [Using modules to encapsulate and reuse resource configurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html) and [Registering extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-register) in the *CloudFormation User Guide* . For information on developing modules, see [Developing modules](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/modules.html) in the *CloudFormation CLI User Guide* .
AWS::CloudFormation::ModuleVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnModuleVersionProps);
Create a new
AWS::CloudFormation::ModuleVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Name (ARN) of the module. Arn
property attrDescription
readonly attrDescription: string;
The description of the module. Description
property attrDocumentationUrl
readonly attrDocumentationUrl: string;
The URL of a page providing detailed documentation for this module. DocumentationUrl
property attrIsDefaultVersion
readonly attrIsDefaultVersion: cdk.IResolvable;
Whether the specified module version is set as the default version. IsDefaultVersion
property attrSchema
readonly attrSchema: string;
The schema that defines the module. Schema
property attrTimeCreated
readonly attrTimeCreated: string;
When the specified module version was registered. TimeCreated
property attrVersionId
readonly attrVersionId: string;
The ID of this version of the module. VersionId
property attrVisibility
readonly attrVisibility: string;
The scope at which the module is visible and usable in CloudFormation operations.
Valid values include:
-
PRIVATE
: The module is only visible and usable within the account in which it's registered. -PUBLIC
: The module is publicly visible and usable within any Amazon account. Visibility
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property moduleName
moduleName: string;
The name of the module being registered.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html#cfn-cloudformation-moduleversion-modulename
property modulePackage
modulePackage: string;
A URL to the S3 bucket containing the package that contains the template fragment and schema files for the module version to register.
> The user registering the module version must be able to access the module package in the S3 bucket. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the package. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide* .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html#cfn-cloudformation-moduleversion-modulepackage
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnOutput
class CfnOutput extends CfnElement {}
constructor
constructor(scope: Construct, id: string, props: CfnOutputProps);
Creates an CfnOutput value for this stack.
Parameter scope
The parent construct.
Parameter props
CfnOutput properties.
property condition
condition: CfnCondition;
A condition to associate with this output value. If the condition evaluates to
false
, this output value will not be included in the stack.- No condition is associated with the output.
property description
description: string;
A String type that describes the output value. The description can be a maximum of 4 K in length.
- No description.
property exportName
exportName: string;
The name used to export the value of this output across stacks.
To use the value in another stack, pass the value of
output.importValue
to it.- the output is not exported
property importValue
readonly importValue: string;
Return the
Fn.importValue
expression to import this value into another stackThe returned value should not be used in the same stack, but in a different one. It must be deployed to the same environment, as CloudFormation exports can only be imported in the same Region and account.
The is no automatic registration of dependencies between stacks when using this mechanism, so you should make sure to deploy them in the right order yourself.
You can use this mechanism to share values across Stacks in different Stages. If you intend to share the value to another Stack inside the same Stage, the automatic cross-stack referencing mechanism is more convenient.
property value
value: any;
The value of the property returned by the aws cloudformation describe-stacks command. The value of an output can include literals, parameter references, pseudo-parameters, a mapping value, or intrinsic functions.
method validate
protected validate: () => string[];
class CfnParameter
class CfnParameter extends CfnElement {}
A CloudFormation parameter.
Use the optional Parameters section to customize your templates. Parameters enable you to input custom values to your template each time you create or update a stack.
constructor
constructor(scope: Construct, id: string, props?: CfnParameterProps);
Creates a parameter construct. Note that the name (logical ID) of the parameter will derive from it's
coname
and location within the stack. Therefore, it is recommended that parameters are defined at the stack level.Parameter scope
The parent construct.
Parameter props
The parameter properties.
property allowedPattern
allowedPattern: string;
A regular expression that represents the patterns to allow for String types.
- No constraints on patterns allowed for parameter.
property allowedValues
allowedValues: string[];
An array containing the list of values allowed for the parameter.
- No constraints on values allowed for parameter.
property constraintDescription
constraintDescription: string;
A string that explains a constraint when the constraint is violated. For example, without a constraint description, a parameter that has an allowed pattern of [A-Za-z0-9]+ displays the following error message when the user specifies an invalid value:
- No description with customized error message when user specifies invalid values.
property default
default: any;
A value of the appropriate type for the template to use if no value is specified when a stack is created. If you define constraints for the parameter, you must specify a value that adheres to those constraints.
- No default value for parameter.
property description
description: string;
A string of up to 4000 characters that describes the parameter.
- No description for the parameter.
property maxLength
maxLength: number;
An integer value that determines the largest number of characters you want to allow for String types.
- None.
property maxValue
maxValue: number;
A numeric value that determines the largest numeric value you want to allow for Number types.
- None.
property minLength
minLength: number;
An integer value that determines the smallest number of characters you want to allow for String types.
- None.
property minValue
minValue: number;
A numeric value that determines the smallest numeric value you want to allow for Number types.
- None.
property noEcho
noEcho: boolean;
Indicates if this parameter is configured with "NoEcho" enabled.
property type
type: string;
The data type for the parameter (DataType).
String
property value
readonly value: IResolvable;
The parameter value as a Token
property valueAsList
readonly valueAsList: string[];
The parameter value, if it represents a string list.
property valueAsNumber
readonly valueAsNumber: number;
The parameter value, if it represents a number.
property valueAsString
readonly valueAsString: string;
The parameter value, if it represents a string.
method resolve
resolve: (_context: IResolveContext) => any;
class CfnPublicTypeVersion
class CfnPublicTypeVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::PublicTypeVersion
Tests and publishes a registered extension as a public, third-party extension.
CloudFormation first tests the extension to make sure it meets all necessary requirements for being published in the CloudFormation registry. If it does, CloudFormation then publishes it to the registry as a public third-party extension in this Region. Public extensions are available for use by all CloudFormation users.
- For resource types, testing includes passing all contracts tests defined for the type. - For modules, testing includes determining if the module's model meets all necessary requirements.
For more information, see [Testing your public extension prior to publishing](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing) in the *CloudFormation CLI User Guide* .
If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region for testing.
To perform testing, CloudFormation assumes the execution role specified when the type was registered.
An extension must have a test status of
PASSED
before it can be published. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) in the *CloudFormation CLI User Guide* .AWS::CloudFormation::PublicTypeVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html
constructor
constructor( scope: cdk.Construct, id: string, props?: cdk.CfnPublicTypeVersionProps);
Create a new
AWS::CloudFormation::PublicTypeVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property arn
arn: string;
The Amazon Resource Number (ARN) of the extension.
Conditional: You must specify
Arn
, orTypeName
andType
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-arn
property attrPublicTypeArn
readonly attrPublicTypeArn: string;
The Amazon Resource Number (ARN) assigned to the public extension upon publication. PublicTypeArn
property attrPublisherId
readonly attrPublisherId: string;
The publisher ID of the extension publisher. PublisherId
property attrTypeVersionArn
readonly attrTypeVersionArn: string;
The Amazon Resource Number (ARN) assigned to this version of the extension. TypeVersionArn
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property logDeliveryBucket
logDeliveryBucket: string;
The S3 bucket to which CloudFormation delivers the contract test execution logs.
CloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of
PASSED
orFAILED
.The user initiating the stack operation must be able to access items in the specified S3 bucket. Specifically, the user needs the following permissions:
- GetObject - PutObject
For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the *AWS Identity and Access Management User Guide* .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-logdeliverybucket
property publicVersionNumber
publicVersionNumber: string;
The version number to assign to this version of the extension.
Use the following format, and adhere to semantic versioning when assigning a version number to your extension:
MAJOR.MINOR.PATCH
For more information, see [Semantic Versioning 2.0.0](https://docs.aws.amazon.com/https://semver.org/) .
If you don't specify a version number, CloudFormation increments the version number by one minor version release.
You cannot specify a version number the first time you publish a type. AWS CloudFormation automatically sets the first version number to be
1.0.0
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-publicversionnumber
property type
type: string;
The type of the extension to test.
Conditional: You must specify
Arn
, orTypeName
andType
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-type
property typeName
typeName: string;
The name of the extension to test.
Conditional: You must specify
Arn
, orTypeName
andType
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-typename
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnPublisher
class CfnPublisher extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::Publisher
Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users.
For information on requirements for registering as a public extension publisher, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the *CloudFormation CLI User Guide* .
AWS::CloudFormation::Publisher external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnPublisherProps);
Create a new
AWS::CloudFormation::Publisher
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property acceptTermsAndConditions
acceptTermsAndConditions: boolean | cdk.IResolvable;
Whether you accept the [Terms and Conditions](https://docs.aws.amazon.com/https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) for publishing extensions in the CloudFormation registry. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry.
The default is
false
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-accepttermsandconditions
property attrIdentityProvider
readonly attrIdentityProvider: string;
The type of account used as the identity provider when registering this publisher with CloudFormation .
Values include:
AWS_Marketplace
|Bitbucket
|GitHub
. IdentityProvider
property attrPublisherId
readonly attrPublisherId: string;
The ID of the extension publisher. This publisher ID applies to your account in all AWS Regions . PublisherId
property attrPublisherProfile
readonly attrPublisherProfile: string;
The URL to the publisher's profile with the identity provider. PublisherProfile
property attrPublisherStatus
readonly attrPublisherStatus: string;
Whether the publisher is verified. PublisherStatus
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property connectionArn
connectionArn: string;
If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for your connection to that account.
For more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the *CloudFormation CLI User Guide* .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-connectionarn
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnRefElement
abstract class CfnRefElement extends CfnElement {}
Base class for referenceable CloudFormation constructs which are not Resources
These constructs are things like Conditions and Parameters, can be referenced by taking the
.ref
attribute.Resource constructs do not inherit from CfnRefElement because they have their own, more specific types returned from the .ref attribute. Also, some resources aren't referenceable at all (such as BucketPolicies or GatewayAttachments).
property ref
readonly ref: string;
Return a string that will be resolved to a CloudFormation
{ Ref }
for this element.If, by any chance, the intrinsic reference of a resource is not a string, you could coerce it to an IResolvable through
Lazy.any({ produce: resource.ref })
.
class CfnResource
class CfnResource extends CfnRefElement {}
Represents a CloudFormation resource.
constructor
constructor(scope: Construct, id: string, props: CfnResourceProps);
Creates a resource construct.
Parameter cfnResourceType
The CloudFormation type of this resource (e.g. AWS::DynamoDB::Table)
property cfnOptions
readonly cfnOptions: ICfnResourceOptions;
Options for this resource, such as condition, update policy etc.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property cfnResourceType
readonly cfnResourceType: string;
AWS resource type.
property updatedProperites
readonly updatedProperites: { [key: string]: any };
Return properties modified after initiation
Resources that expose mutable properties should override this function to collect and return the properties object for this resource.
method addDeletionOverride
addDeletionOverride: (path: string) => void;
Syntactic sugar for
addOverride(path, undefined)
.Parameter path
The path of the value to delete
method addDependsOn
addDependsOn: (target: CfnResource) => void;
Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
This can be used for resources across stacks (or nested stack) boundaries and the dependency will automatically be transferred to the relevant scope.
method addMetadata
addMetadata: (key: string, value: any) => void;
Add a value to the CloudFormation Resource Metadata
See Also
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.
method addOverride
addOverride: (path: string, value: any) => void;
Adds an override to the synthesized CloudFormation resource. To add a property override, either use
addPropertyOverride
or prefixpath
with "Properties." (i.e.Properties.TopicName
).If the override is nested, separate each nested level using a dot (.) in the path parameter. If there is an array as part of the nesting, specify the index in the path.
To include a literal
.
in the property name, prefix with a\
. In most programming languages you will need to write this as"\\."
because the\
itself will need to be escaped.For example,
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');would add the overrides
"Properties": {"GlobalSecondaryIndexes": [{"Projection": {"NonKeyAttributes": [ "myattribute" ]...}...},{"ProjectionType": "INCLUDE"...},]...}The
value
argument toaddOverride
will not be processed or translated in any way. Pass raw JSON values in here with the correct capitalization for CloudFormation. If you pass CDK classes or structs, they will be rendered with lowercased key names, and CloudFormation will reject the template.Parameter path
The path of the property, you can use dot notation to override values in complex types. Any intermdediate keys will be created as needed.
Parameter value
The value. Could be primitive or complex.
method addPropertyDeletionOverride
addPropertyDeletionOverride: (propertyPath: string) => void;
Adds an override that deletes the value of a property from the resource definition.
Parameter propertyPath
The path to the property.
method addPropertyOverride
addPropertyOverride: (propertyPath: string, value: any) => void;
Adds an override to a resource property.
Syntactic sugar for
addOverride("Properties.<...>", value)
.Parameter propertyPath
The path of the property
Parameter value
The value
method applyRemovalPolicy
applyRemovalPolicy: ( policy: RemovalPolicy | undefined, options?: RemovalPolicyOptions) => void;
Sets the deletion policy of the resource based on the removal policy specified.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (
RemovalPolicy.DESTROY
), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
method getAtt
getAtt: (attributeName: string) => Reference;
Returns a token for an runtime attribute of this resource. Ideally, use generated attribute accessors (e.g.
resource.arn
), but this can be used for future compatibility in case there is no generated attribute.Parameter attributeName
The name of the attribute.
method getMetadata
getMetadata: (key: string) => any;
Retrieve a value value from the CloudFormation Resource Metadata
See Also
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.
method isCfnResource
static isCfnResource: (construct: IConstruct) => construct is CfnResource;
Check whether the given construct is a CfnResource
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
method shouldSynthesize
protected shouldSynthesize: () => boolean;
Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
Returns
true
if the resource should be included orfalse
is the resource should be omitted.
method toString
toString: () => string;
Returns
a string representation of this resource
method validateProperties
protected validateProperties: (_properties: any) => void;
class CfnResourceDefaultVersion
class CfnResourceDefaultVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::ResourceDefaultVersion
Specifies the default version of a resource. The default version of a resource will be used in CloudFormation operations.
AWS::CloudFormation::ResourceDefaultVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html
constructor
constructor( scope: cdk.Construct, id: string, props?: cdk.CfnResourceDefaultVersionProps);
Create a new
AWS::CloudFormation::ResourceDefaultVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Name (ARN) of the resource. Arn
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property typeName
typeName: string;
The name of the resource.
Conditional: You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-typename
property typeVersionArn
typeVersionArn: string;
The Amazon Resource Name (ARN) of the resource version.
Conditional: You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-typeversionarn
property versionId
versionId: string;
The ID of a specific version of the resource. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the resource version when it's registered.
Conditional: You must specify either
TypeVersionArn
, orTypeName
andVersionId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-versionid
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnResourceVersion
class CfnResourceVersion extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::ResourceVersion
Registers a resource version with the CloudFormation service. Registering a resource version makes it available for use in CloudFormation templates in your AWS account , and includes:
- Validating the resource schema. - Determining which handlers, if any, have been specified for the resource. - Making the resource available for use in your account.
For more information on how to develop resources and ready them for registration, see [Creating Resource Providers](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) in the *CloudFormation CLI User Guide* .
You can have a maximum of 50 resource versions registered at a time. This maximum is per account and per Region.
AWS::CloudFormation::ResourceVersion external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html
constructor
constructor( scope: cdk.Construct, id: string, props: cdk.CfnResourceVersionProps);
Create a new
AWS::CloudFormation::ResourceVersion
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Name (ARN) of the resource version. Arn
property attrIsDefaultVersion
readonly attrIsDefaultVersion: cdk.IResolvable;
Whether the resource version is set as the default version. IsDefaultVersion
property attrProvisioningType
readonly attrProvisioningType: string;
The provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.
Valid values include:
-
FULLY_MUTABLE
: The resource type includes an update handler to process updates to the type during stack update operations. -IMMUTABLE
: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations. -NON_PROVISIONABLE
: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.- create - read - delete ProvisioningType
property attrTypeArn
readonly attrTypeArn: string;
The Amazon Resource Name (ARN) of the resource. TypeArn
property attrVersionId
readonly attrVersionId: string;
The ID of a specific version of the resource. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the resource version when it is registered. VersionId
property attrVisibility
readonly attrVisibility: string;
The scope at which the resource is visible and usable in CloudFormation operations.
Valid values include:
-
PRIVATE
: The resource is only visible and usable within the account in which it's registered. CloudFormation marks any resources you register asPRIVATE
. -PUBLIC
: The resource is publicly visible and usable within any Amazon account. Visibility
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property executionRoleArn
executionRoleArn: string;
The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the resource. If your resource calls AWS APIs in any of its handlers, you must create an *[IAM execution role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-executionrolearn
property loggingConfig
loggingConfig: cdk.IResolvable | cdk.CfnResourceVersion.LoggingConfigProperty;
Logging configuration information for a resource.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-loggingconfig
property schemaHandlerPackage
schemaHandlerPackage: string;
A URL to the S3 bucket containing the resource project package that contains the necessary files for the resource you want to register.
For information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide* .
> The user registering the resource must be able to access the package in the S3 bucket. That is, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide* .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-schemahandlerpackage
property typeName
typeName: string;
The name of the resource being registered.
We recommend that resource names adhere to the following pattern: *company_or_organization* :: *service* :: *type* .
> The following organization namespaces are reserved and can't be used in your resource names: > > -
Alexa
> -AMZN
> -Amazon
> -AWS
> -Custom
> -Dev
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-typename
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnRule
class CfnRule extends CfnRefElement {}
The Rules that define template constraints in an AWS Service Catalog portfolio describe when end users can use the template and which values they can specify for parameters that are declared in the AWS CloudFormation template used to create the product they are attempting to use. Rules are useful for preventing end users from inadvertently specifying an incorrect value. For example, you can add a rule to verify whether end users specified a valid subnet in a given VPC or used m1.small instance types for test environments. AWS CloudFormation uses rules to validate parameter values before it creates the resources for the product.
A rule can include a RuleCondition property and must include an Assertions property. For each rule, you can define only one rule condition; you can define one or more asserts within the Assertions property. You define a rule condition and assertions by using rule-specific intrinsic functions.
https://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html
constructor
constructor(scope: Construct, id: string, props?: CfnRuleProps);
Creates and adds a rule.
Parameter scope
The parent construct.
Parameter props
The rule props.
method addAssertion
addAssertion: (condition: ICfnConditionExpression, description: string) => void;
Adds an assertion to the rule.
Parameter condition
The expression to evaluation.
Parameter description
The description of the assertion.
class CfnStack
class CfnStack extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::Stack
The
AWS::CloudFormation::Stack
resource nests a stack as a resource in a top-level template.You can add output values from a nested stack within the containing template. You use the [GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) function with the nested stack's logical name and the name of the output value in the nested stack in the format
Outputs. *NestedStackOutputName*
.> We strongly recommend that updates to nested stacks are run from the parent stack.
When you apply template changes to update a top-level stack, CloudFormation updates the top-level stack and initiates an update to its nested stacks. CloudFormation updates the resources of modified nested stacks, but doesn't update the resources of unmodified nested stacks. For more information, see [CloudFormation stack updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) .
> You must acknowledge IAM capabilities for nested stacks that contain IAM resources. Also, verify that you have cancel update stack permissions, which is required if an update rolls back. For more information about IAM and CloudFormation , see [Controlling access with AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) .
AWS::CloudFormation::Stack external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnStackProps);
Create a new
AWS::CloudFormation::Stack
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property notificationArns
notificationArns: string[];
The Amazon Simple Notification Service (Amazon SNS) topic ARNs to publish stack related events. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface (CLI).
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns
property parameters
parameters: cdk.IResolvable | { [key: string]: string };
The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created. Each parameter has a name corresponding to a parameter defined in the embedded template and a value representing the value that you want to set for the parameter.
> If you use the
Ref
function to pass a parameter value to a nested stack, comma-delimited list parameters must be of typeString
. In other words, you can't pass values that are of typeCommaDelimitedList
to nested stacks.Conditional. Required if the nested stack requires input parameters.
Whether an update causes interruptions depends on the resources that are being updated. An update never causes a nested stack to be replaced.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters
property tags
readonly tags: cdk.TagManager;
Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags
property templateUrl
templateUrl: string;
Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) .
Whether an update causes interruptions depends on the resources that are being updated. An update never causes a nested stack to be replaced.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl
property timeoutInMinutes
timeoutInMinutes: number;
The length of time, in minutes, that CloudFormation waits for the nested stack to reach the
CREATE_COMPLETE
state. The default is no timeout. When CloudFormation detects that the nested stack has reached theCREATE_COMPLETE
state, it marks the nested stack resource asCREATE_COMPLETE
in the parent stack and resumes creating the parent stack. If the timeout period expires before the nested stack reachesCREATE_COMPLETE
, CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack.Updates aren't supported.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnStackSet
class CfnStackSet extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::StackSet
The
AWS::CloudFormation::StackSet
enables you to provision stacks into AWS accounts and across Regions by using a single CloudFormation template. In the stack set, you specify the template to use, in addition to any parameters and capabilities that the template requires.AWS::CloudFormation::StackSet external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html
constructor
constructor(scope: cdk.Construct, id: string, props: cdk.CfnStackSetProps);
Create a new
AWS::CloudFormation::StackSet
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property administrationRoleArn
administrationRoleArn: string;
The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account.
Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see [Prerequisites: Granting Permissions for Stack Set Operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) in the *AWS CloudFormation User Guide* .
*Minimum* :
20
*Maximum* :
2048
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-administrationrolearn
property attrStackSetId
readonly attrStackSetId: string;
The ID of the stack that you're creating. StackSetId
property autoDeployment
autoDeployment: cdk.IResolvable | cdk.CfnStackSet.AutoDeploymentProperty;
[
Service-managed
permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-autodeployment
property callAs
callAs: string;
[Service-managed permissions] 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. UseSELF
for stack sets with self-managed permissions.- To create a stack set with service-managed permissions while signed in to the management account, specify
SELF
. - To create a stack set with service-managed permissions while signed in to a delegated administrator account, specifyDELEGATED_ADMIN
.Your AWS account must be registered as a delegated admin in the management account. For more information, see [Register a delegated administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) in the *AWS CloudFormation User Guide* .
Stack sets with service-managed permissions are created in the management account, including stack sets that are created by delegated administrators.
*Valid Values* :
SELF
|DELEGATED_ADMIN
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-callas
property capabilities
capabilities: string[];
The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your AWS account —for example, by creating new AWS Identity and Access Management ( IAM ) users. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities) .
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-capabilities
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property description
description: string;
A description of the stack set.
*Minimum* :
1
*Maximum* :
1024
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-description
property executionRoleName
executionRoleName: string;
The name of the IAM execution role to use to create the stack set. If you don't specify an execution role, AWS CloudFormation uses the
AWSCloudFormationStackSetExecutionRole
role for the stack set operation.*Minimum* :
1
*Maximum* :
64
*Pattern* :
[a-zA-Z_0-9+=,.@-]+
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-executionrolename
property managedExecution
managedExecution: any;
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 stack set's execution configuration while there are running or queued operations for that stack set.
When inactive (default), StackSets performs one operation at a time in request order.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-managedexecution
property operationPreferences
operationPreferences: | cdk.IResolvable | cdk.CfnStackSet.OperationPreferencesProperty;
The user-specified preferences for how AWS CloudFormation performs a stack set operation.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-operationpreferences
property parameters
parameters: | cdk.IResolvable | (cdk.IResolvable | cdk.CfnStackSet.ParameterProperty)[];
The input parameters for the stack set template.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-parameters
property permissionModel
permissionModel: string;
Describes how the IAM roles required for stack set 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 Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) . - WithSERVICE_MANAGED
permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations . For more information, see [Grant Service-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html) .http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-permissionmodel
property stackInstancesGroup
stackInstancesGroup: | cdk.IResolvable | (cdk.IResolvable | cdk.CfnStackSet.StackInstancesProperty)[];
A group of stack instances with parameters in some specific accounts and Regions.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stackinstancesgroup
property stackSetName
stackSetName: string;
The name to associate with the stack set. The name must be unique in the Region where you create your stack set.
*Maximum* :
128
*Pattern* :
^[a-zA-Z][a-zA-Z0-9-]{0,127}$
> The
StackSetName
property is required.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stacksetname
property tags
readonly tags: cdk.TagManager;
The key-value pairs to associate with this stack set 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.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-tags
property templateBody
templateBody: string;
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
orTemplateBody
in a StackSet, but you can't use both. Dynamic references in theTemplateBody
may not work correctly in all cases. It's recommended to pass templates containing dynamic references throughTemplateUrl
instead.*Minimum* :
1
*Maximum* :
51200
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templatebody
property templateUrl
templateUrl: string;
Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket.
You must include either
TemplateURL
orTemplateBody
in a StackSet, but you can't use both.*Minimum* :
1
*Maximum* :
1024
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templateurl
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnTypeActivation
class CfnTypeActivation extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::TypeActivation
Activates a public third-party extension, making it available for use in stack templates. For more information, see [Using public extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html) in the *AWS CloudFormation User Guide* .
Once you have activated a public third-party extension in your account and Region, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) to specify configuration properties for the extension. For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration) in the *CloudFormation User Guide* .
AWS::CloudFormation::TypeActivation external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html
constructor
constructor( scope: cdk.Construct, id: string, props?: cdk.CfnTypeActivationProps);
Create a new
AWS::CloudFormation::TypeActivation
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrArn
readonly attrArn: string;
The Amazon Resource Number (ARN) of the activated extension, in this account and Region. Arn
property autoUpdate
autoUpdate: boolean | cdk.IResolvable;
Whether to automatically update the extension in this account and Region when a new *minor* version is published by the extension publisher. Major versions released by the publisher must be manually updated.
The default is
true
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-autoupdate
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property executionRoleArn
executionRoleArn: string;
The name of the IAM execution role to use to activate the extension.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-executionrolearn
property loggingConfig
loggingConfig: cdk.IResolvable | cdk.CfnTypeActivation.LoggingConfigProperty;
Specifies logging configuration information for an extension.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-loggingconfig
property majorVersion
majorVersion: string;
The major version of this extension you want to activate, if multiple major versions are available. The default is the latest major version. CloudFormation uses the latest available *minor* version of the major version selected.
You can specify
MajorVersion
orVersionBump
, but not both.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-majorversion
property publicTypeArn
publicTypeArn: string;
The Amazon Resource Number (ARN) of the public extension.
Conditional: You must specify
PublicTypeArn
, orTypeName
,Type
, andPublisherId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publictypearn
property publisherId
publisherId: string;
The ID of the extension publisher.
Conditional: You must specify
PublicTypeArn
, orTypeName
,Type
, andPublisherId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publisherid
property type
type: string;
The extension type.
Conditional: You must specify
PublicTypeArn
, orTypeName
,Type
, andPublisherId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-type
property typeName
typeName: string;
The name of the extension.
Conditional: You must specify
PublicTypeArn
, orTypeName
,Type
, andPublisherId
.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typename
property typeNameAlias
typeNameAlias: string;
An alias to assign to the public extension, in this account and Region. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and Region. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console.
An extension alias must be unique within a given account and Region. You can activate the same public resource multiple times in the same account and Region, using different type name aliases.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typenamealias
property versionBump
versionBump: string;
Manually updates a previously-activated type to a new major or minor version, if available. You can also use this parameter to update the value of
AutoUpdate
.-
MAJOR
: CloudFormation updates the extension to the newest major version, if one is available. -MINOR
: CloudFormation updates the extension to the newest minor version, if one is available.http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-versionbump
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnWaitCondition
class CfnWaitCondition extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::WaitCondition
> For Amazon EC2 and Auto Scaling resources, we recommend that you use a
CreationPolicy
attribute instead of wait conditions. Add a CreationPolicy attribute to those resources, and use the cfn-signal helper script to signal when an instance creation process has completed successfully.You can use a wait condition for situations like the following:
- To coordinate stack resource creation with configuration actions that are external to the stack creation. - To track the status of a configuration process.
For these situations, we recommend that you associate a [CreationPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html) attribute with the wait condition so that you don't have to use a wait condition handle. For more information and an example, see [Creating wait conditions in a template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html) . If you use a CreationPolicy with a wait condition, don't specify any of the wait condition's properties.
> If you use the [VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) feature, resources in the VPC that respond to wait conditions must have access to CloudFormation , specific Amazon Simple Storage Service ( Amazon S3 ) buckets. Resources must send wait condition responses to a presigned Amazon S3 URL. If they can't send responses to Amazon S3 , CloudFormation won't receive a response and the stack operation fails. For more information, see [Setting up VPC endpoints for AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-vpce-bucketnames.html) .
AWS::CloudFormation::WaitCondition external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html
constructor
constructor(scope: cdk.Construct, id: string, props?: cdk.CfnWaitConditionProps);
Create a new
AWS::CloudFormation::WaitCondition
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property attrData
readonly attrData: cdk.IResolvable;
A JSON object that contains the
UniqueId
andData
values from the wait condition signal(s) for the specified wait condition. For more information about wait condition signals, see [Wait condition signal JSON format](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html#using-cfn-waitcondition-signaljson) .Example return value for a wait condition with 2 signals:
{ "Signal1" : "Step 1 complete." , "Signal2" : "Step 2 complete." }
Data
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
property cfnProperties
readonly cfnProperties: { [key: string]: any };
property count
count: number;
The number of success signals that CloudFormation must receive before it continues the stack creation process. When the wait condition receives the requisite number of success signals, CloudFormation resumes the creation of the stack. If the wait condition doesn't receive the specified number of success signals before the Timeout period expires, CloudFormation assumes that the wait condition has failed and rolls the stack back.
Updates aren't supported.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count
property handle
handle: string;
A reference to the wait condition handle used to signal this wait condition. Use the
Ref
intrinsic function to specify an [AWS::CloudFormation::WaitConditionHandle
](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html) resource.Anytime you add a
WaitCondition
resource during a stack update, you must associate the wait condition with a new WaitConditionHandle resource. Don't reuse an old wait condition handle that has already been defined in the template. If you reuse a wait condition handle, the wait condition might evaluate old signals from a previous create or update stack command.Updates aren't supported.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle
property timeout
timeout: string;
The length of time (in seconds) to wait for the number of signals that the
Count
property specifies.Timeout
is a minimum-bound property, meaning the timeout occurs no sooner than the time you specify, but can occur shortly thereafter. The maximum time that can be specified for this property is 12 hours (43200 seconds).Updates aren't supported.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
method renderProperties
protected renderProperties: (props: { [key: string]: any }) => { [key: string]: any;};
class CfnWaitConditionHandle
class CfnWaitConditionHandle extends cdk.CfnResource implements cdk.IInspectable {}
A CloudFormation
AWS::CloudFormation::WaitConditionHandle
> For Amazon EC2 and Auto Scaling resources, we recommend that you use a
CreationPolicy
attribute instead of wait conditions. Add aCreationPolicy
attribute to those resources, and use the cfn-signal helper script to signal when an instance creation process has completed successfully. > > For more information, see [Deploying applications on Amazon EC2 with AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) .The
AWS::CloudFormation::WaitConditionHandle
type has no properties. When you reference theWaitConditionHandle
resource by using theRef
function, AWS CloudFormation returns a presigned URL. You pass this URL to applications or scripts that are running on your Amazon EC2 instances to send signals to that URL. An associatedAWS::CloudFormation::WaitCondition
resource checks the URL for the required number of success signals or for a failure signal.> Anytime you add a
WaitCondition
resource during a stack update or update a resource with a wait condition, you must associate the wait condition with a newWaitConditionHandle
resource. Don't reuse an old wait condition handle that has already been defined in the template. If you reuse a wait condition handle, the wait condition might evaluate old signals from a previous create or update stack command. > Updates aren't supported for this resource.AWS::CloudFormation::WaitConditionHandle external
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html
constructor
constructor(scope: cdk.Construct, id: string);
Create a new
AWS::CloudFormation::WaitConditionHandle
.Parameter scope
scope in which this resource is defined
Parameter id
scoped id of the resource
Parameter props
resource properties
property CFN_RESOURCE_TYPE_NAME
static readonly CFN_RESOURCE_TYPE_NAME: string;
The CloudFormation resource type name for this resource class.
method inspect
inspect: (inspector: cdk.TreeInspector) => void;
Examines the CloudFormation resource and discloses attributes.
Parameter inspector
tree inspector to collect and process attributes
class CliCredentialsStackSynthesizer
class CliCredentialsStackSynthesizer extends StackSynthesizer {}
A synthesizer that uses conventional asset locations, but not conventional deployment roles
Instead of assuming the bootstrapped deployment roles, all stack operations will be performed using the CLI's current credentials.
- This synthesizer does not support deploying to accounts to which the CLI does not have credentials. It also does not support deploying using **CDK Pipelines**. For either of those features, use
DefaultStackSynthesizer
. - This synthesizer requires an S3 bucket and ECR repository with well-known names. To not depend on those, useLegacyStackSynthesizer
.Be aware that your CLI credentials must be valid for the duration of the entire deployment. If you are using session credentials, make sure the session lifetime is long enough.
By default, expects the environment to have been bootstrapped with just the staging resources of the Bootstrap Stack V2 (also known as "modern bootstrap stack"). You can override the default names using the synthesizer's construction properties.
constructor
constructor(props?: CliCredentialsStackSynthesizerProps);
method addDockerImageAsset
addDockerImageAsset: (asset: DockerImageAssetSource) => DockerImageAssetLocation;
method addFileAsset
addFileAsset: (asset: FileAssetSource) => FileAssetLocation;
method bind
bind: (stack: Stack) => void;
method synthesize
synthesize: (session: ISynthesisSession) => void;
Synthesize the associated stack to the session
class ConcreteDependable
class ConcreteDependable implements IDependable {}
A set of constructs to be used as a dependable
This class can be used when a set of constructs which are disjoint in the construct tree needs to be combined to be used as a single dependable.
constructor
constructor();
method add
add: (construct: IConstruct) => void;
Add a construct to the dependency roots
class Construct
class Construct extends constructs.Construct implements IConstruct {}
Represents the building block of the construct graph.
All constructs besides the root construct must be created within the scope of another construct.
constructor
constructor(scope: constructs.Construct, id: string);
property node
readonly node: ConstructNode;
The construct tree node associated with this construct.
method isConstruct
static isConstruct: (x: any) => x is Construct;
Return whether the given object is a Construct
method onPrepare
protected onPrepare: () => void;
Perform final modifications before synthesis
This method can be implemented by derived constructs in order to perform final changes before synthesis. prepare() will be called after child constructs have been prepared.
This is an advanced framework feature. Only use this if you understand the implications.
method onSynthesize
protected onSynthesize: (session: constructs.ISynthesisSession) => void;
Allows this construct to emit artifacts into the cloud assembly during synthesis.
This method is usually implemented by framework-level constructs such as
Stack
andAsset
as they participate in synthesizing the cloud assembly.Parameter session
The synthesis session.
method onValidate
protected onValidate: () => string[];
Validate the current construct.
This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis.
Returns
An array of validation error messages, or an empty array if the construct is valid.
method prepare
protected prepare: () => void;
Perform final modifications before synthesis
This method can be implemented by derived constructs in order to perform final changes before synthesis. prepare() will be called after child constructs have been prepared.
This is an advanced framework feature. Only use this if you understand the implications.
method synthesize
protected synthesize: (session: ISynthesisSession) => void;
Allows this construct to emit artifacts into the cloud assembly during synthesis.
This method is usually implemented by framework-level constructs such as
Stack
andAsset
as they participate in synthesizing the cloud assembly.Parameter session
The synthesis session.
method validate
protected validate: () => string[];
Validate the current construct.
This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis.
Returns
An array of validation error messages, or an empty array if the construct is valid.
class ConstructNode
class ConstructNode {}
Represents the construct node in the scope tree.
constructor
constructor(host: Construct, scope: IConstruct, id: string);
property addr
readonly addr: string;
Returns an opaque tree-unique address for this construct.
Addresses are 42 characters hexadecimal strings. They begin with "c8" followed by 40 lowercase hexadecimal characters (0-9a-f).
Addresses are calculated using a SHA-1 of the components of the construct path.
To enable refactorings of construct trees, constructs with the ID
Default
will be excluded from the calculation. In those cases constructs in the same tree may have the same addreess.Example value:
c83a2846e506bcc5f10682b564084bca2d275709ee
property children
readonly children: IConstruct[];
All direct children of this construct.
property defaultChild
defaultChild: IConstruct;
Returns the child construct that has the id
Default
orResource"
. This is usually the construct that provides the bulk of the underlying functionality. Useful for modifications of the underlying construct that are not available at the higher levels.Returns
a construct or undefined if there is no default child
Throws
if there is more than one child
property dependencies
readonly dependencies: Dependency[];
Return all dependencies registered on this node or any of its children
property id
readonly id: string;
The id of this construct within the current scope.
This is a a scope-unique id. To obtain an app-unique id for this construct, use
uniqueId
.
property locked
readonly locked: boolean;
Returns true if this construct or the scopes in which it is defined are locked.
property metadata
readonly metadata: cxapi.MetadataEntry[];
DEPRECATED
Deprecated
use
metadataEntry
property metadataEntry
readonly metadataEntry: constructs.MetadataEntry[];
An immutable array of metadata objects associated with this construct. This can be used, for example, to implement support for deprecation notices, source mapping, etc.
property path
readonly path: string;
The full, absolute path of this construct in the tree.
Components are separated by '/'.
property PATH_SEP
static readonly PATH_SEP: string;
Separator used to delimit construct path components.
property root
readonly root: IConstruct;
Returns
The root of the construct tree.
property scope
readonly scope: IConstruct;
Returns the scope in which this construct is defined.
The value is
undefined
at the root of the construct scope tree.
property scopes
readonly scopes: IConstruct[];
All parent scopes of this construct.
Returns
a list of parent scopes. The last element in the list will always be the current construct and the first element will be the root of the tree.
property uniqueId
readonly uniqueId: string;
A tree-global unique alphanumeric identifier for this construct. Includes all components of the tree.
Deprecated
use
node.addr
to obtain a consistent 42 character address for this node (see https://github.com/aws/constructs/pull/314). Alternatively, to get a CloudFormation-compatible unique identifier, useNames.uniqueId()
.
method addDependency
addDependency: (...dependencies: IDependable[]) => void;
Add an ordering dependency on another Construct.
All constructs in the dependency's scope will be deployed before any construct in this construct's scope.
method addError
addError: (message: string) => void;
DEPRECATED: Adds an { "error": } metadata entry to this construct. The toolkit will fail synthesis when errors are reported.
Parameter message
The error message.
Deprecated
use
Annotations.of(construct).addError()
method addInfo
addInfo: (message: string) => void;
DEPRECATED: Adds a { "info": } metadata entry to this construct. The toolkit will display the info message when apps are synthesized.
Parameter message
The info message.
Deprecated
use
Annotations.of(construct).addInfo()
method addMetadata
addMetadata: (type: string, data: any, fromFunction?: any) => void;
Adds a metadata entry to this construct. Entries are arbitrary values and will also include a stack trace to allow tracing back to the code location for when the entry was added. It can be used, for example, to include source mapping in CloudFormation templates to improve diagnostics.
Parameter type
a string denoting the type of metadata
Parameter data
the value of the metadata (can be a Token). If null/undefined, metadata will not be added.
Parameter fromFunction
a function under which to restrict the metadata entry's stack trace (defaults to this.addMetadata)
method addValidation
addValidation: (validation: constructs.IValidation) => void;
Add a validator to this construct Node