@aws-cdk/core
Version:
AWS Cloud Development Kit Core Library
951 lines • 172 kB
JavaScript
"use strict";
// Copyright 2012-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// Generated from the AWS CloudFormation Resource Specification
// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
// @cfn2ts:meta@ {"generated":"2020-10-19T20:12:05.470Z","fingerprint":"eETFhn2VgwJ7MBchMQ1l/Nc6+6PIG7oc+Fn8lpclkk0="}
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnWaitConditionHandle = exports.CfnWaitCondition = exports.CfnStackSet = exports.CfnStack = exports.CfnMacro = exports.CfnCustomResource = void 0;
/* eslint-disable max-len */ // This is generated code - line lengths are difficult to control
const cdk = require(".");
const cfn_parse = require("./cfn-parse");
/**
* Determine whether the given properties match those of a `CfnCustomResourceProps`
*
* @param properties - the TypeScript properties of a `CfnCustomResourceProps`
*
* @returns the result of the validation.
*/
function CfnCustomResourcePropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('serviceToken', cdk.requiredValidator)(properties.serviceToken));
errors.collect(cdk.propertyValidator('serviceToken', cdk.validateString)(properties.serviceToken));
return errors.wrap('supplied properties not correct for "CfnCustomResourceProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::CustomResource` resource
*
* @param properties - the TypeScript properties of a `CfnCustomResourceProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::CustomResource` resource.
*/
// @ts-ignore TS6133
function cfnCustomResourcePropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCustomResourcePropsValidator(properties).assertSuccess();
return {
ServiceToken: cdk.stringToCloudFormation(properties.serviceToken),
};
}
// @ts-ignore TS6133
function CfnCustomResourcePropsFromCloudFormation(properties) {
properties = properties || {};
return {
serviceToken: cfn_parse.FromCloudFormation.getString(properties.ServiceToken),
};
}
/**
* A CloudFormation `AWS::CloudFormation::CustomResource`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
* @external
* @cloudformationResource AWS::CloudFormation::CustomResource
*/
class CfnCustomResource extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::CustomResource`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @param props - resource properties.
* @external
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnCustomResource.CFN_RESOURCE_TYPE_NAME, properties: props });
cdk.requireProperty(props, 'serviceToken', this);
this.serviceToken = props.serviceToken;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const props = CfnCustomResourcePropsFromCloudFormation(resourceProperties);
const ret = new CfnCustomResource(scope, id, props);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnCustomResource.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
/**
* @external
*/
get cfnProperties() {
return {
serviceToken: this.serviceToken,
};
}
/**
* @external
*/
renderProperties(props) {
return cfnCustomResourcePropsToCloudFormation(props);
}
}
exports.CfnCustomResource = CfnCustomResource;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnCustomResource.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::CustomResource";
/**
* Determine whether the given properties match those of a `CfnMacroProps`
*
* @param properties - the TypeScript properties of a `CfnMacroProps`
*
* @returns the result of the validation.
*/
function CfnMacroPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('description', cdk.validateString)(properties.description));
errors.collect(cdk.propertyValidator('functionName', cdk.requiredValidator)(properties.functionName));
errors.collect(cdk.propertyValidator('functionName', cdk.validateString)(properties.functionName));
errors.collect(cdk.propertyValidator('logGroupName', cdk.validateString)(properties.logGroupName));
errors.collect(cdk.propertyValidator('logRoleArn', cdk.validateString)(properties.logRoleArn));
errors.collect(cdk.propertyValidator('name', cdk.requiredValidator)(properties.name));
errors.collect(cdk.propertyValidator('name', cdk.validateString)(properties.name));
return errors.wrap('supplied properties not correct for "CfnMacroProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::Macro` resource
*
* @param properties - the TypeScript properties of a `CfnMacroProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::Macro` resource.
*/
// @ts-ignore TS6133
function cfnMacroPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnMacroPropsValidator(properties).assertSuccess();
return {
FunctionName: cdk.stringToCloudFormation(properties.functionName),
Name: cdk.stringToCloudFormation(properties.name),
Description: cdk.stringToCloudFormation(properties.description),
LogGroupName: cdk.stringToCloudFormation(properties.logGroupName),
LogRoleARN: cdk.stringToCloudFormation(properties.logRoleArn),
};
}
// @ts-ignore TS6133
function CfnMacroPropsFromCloudFormation(properties) {
properties = properties || {};
return {
functionName: cfn_parse.FromCloudFormation.getString(properties.FunctionName),
name: cfn_parse.FromCloudFormation.getString(properties.Name),
description: properties.Description != null ? cfn_parse.FromCloudFormation.getString(properties.Description) : undefined,
logGroupName: properties.LogGroupName != null ? cfn_parse.FromCloudFormation.getString(properties.LogGroupName) : undefined,
logRoleArn: properties.LogRoleARN != null ? cfn_parse.FromCloudFormation.getString(properties.LogRoleARN) : undefined,
};
}
/**
* A CloudFormation `AWS::CloudFormation::Macro`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html
* @external
* @cloudformationResource AWS::CloudFormation::Macro
*/
class CfnMacro extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::Macro`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @param props - resource properties.
* @external
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnMacro.CFN_RESOURCE_TYPE_NAME, properties: props });
cdk.requireProperty(props, 'functionName', this);
cdk.requireProperty(props, 'name', this);
this.functionName = props.functionName;
this.name = props.name;
this.description = props.description;
this.logGroupName = props.logGroupName;
this.logRoleArn = props.logRoleArn;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const props = CfnMacroPropsFromCloudFormation(resourceProperties);
const ret = new CfnMacro(scope, id, props);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnMacro.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
/**
* @external
*/
get cfnProperties() {
return {
functionName: this.functionName,
name: this.name,
description: this.description,
logGroupName: this.logGroupName,
logRoleArn: this.logRoleArn,
};
}
/**
* @external
*/
renderProperties(props) {
return cfnMacroPropsToCloudFormation(props);
}
}
exports.CfnMacro = CfnMacro;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnMacro.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::Macro";
/**
* Determine whether the given properties match those of a `CfnStackProps`
*
* @param properties - the TypeScript properties of a `CfnStackProps`
*
* @returns the result of the validation.
*/
function CfnStackPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('notificationArns', cdk.listValidator(cdk.validateString))(properties.notificationArns));
errors.collect(cdk.propertyValidator('parameters', cdk.hashValidator(cdk.validateString))(properties.parameters));
errors.collect(cdk.propertyValidator('tags', cdk.listValidator(cdk.validateCfnTag))(properties.tags));
errors.collect(cdk.propertyValidator('templateUrl', cdk.requiredValidator)(properties.templateUrl));
errors.collect(cdk.propertyValidator('templateUrl', cdk.validateString)(properties.templateUrl));
errors.collect(cdk.propertyValidator('timeoutInMinutes', cdk.validateNumber)(properties.timeoutInMinutes));
return errors.wrap('supplied properties not correct for "CfnStackProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::Stack` resource
*
* @param properties - the TypeScript properties of a `CfnStackProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::Stack` resource.
*/
// @ts-ignore TS6133
function cfnStackPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackPropsValidator(properties).assertSuccess();
return {
TemplateURL: cdk.stringToCloudFormation(properties.templateUrl),
NotificationARNs: cdk.listMapper(cdk.stringToCloudFormation)(properties.notificationArns),
Parameters: cdk.hashMapper(cdk.stringToCloudFormation)(properties.parameters),
Tags: cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),
TimeoutInMinutes: cdk.numberToCloudFormation(properties.timeoutInMinutes),
};
}
// @ts-ignore TS6133
function CfnStackPropsFromCloudFormation(properties) {
properties = properties || {};
return {
templateUrl: cfn_parse.FromCloudFormation.getString(properties.TemplateURL),
notificationArns: properties.NotificationARNs != null ? cfn_parse.FromCloudFormation.getStringArray(properties.NotificationARNs) : undefined,
parameters: properties.Parameters != null ? cfn_parse.FromCloudFormation.getMap(cfn_parse.FromCloudFormation.getString)(properties.Parameters) : undefined,
tags: properties.Tags != null ? cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags) : undefined,
timeoutInMinutes: properties.TimeoutInMinutes != null ? cfn_parse.FromCloudFormation.getNumber(properties.TimeoutInMinutes) : undefined,
};
}
/**
* A CloudFormation `AWS::CloudFormation::Stack`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
* @external
* @cloudformationResource AWS::CloudFormation::Stack
*/
class CfnStack extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::Stack`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @param props - resource properties.
* @external
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnStack.CFN_RESOURCE_TYPE_NAME, properties: props });
cdk.requireProperty(props, 'templateUrl', this);
this.templateUrl = props.templateUrl;
this.notificationArns = props.notificationArns;
this.parameters = props.parameters;
this.tags = new cdk.TagManager(cdk.TagType.STANDARD, "AWS::CloudFormation::Stack", props.tags, { tagPropertyName: 'tags' });
this.timeoutInMinutes = props.timeoutInMinutes;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const props = CfnStackPropsFromCloudFormation(resourceProperties);
const ret = new CfnStack(scope, id, props);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnStack.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
/**
* @external
*/
get cfnProperties() {
return {
templateUrl: this.templateUrl,
notificationArns: this.notificationArns,
parameters: this.parameters,
tags: this.tags.renderTags(),
timeoutInMinutes: this.timeoutInMinutes,
};
}
/**
* @external
*/
renderProperties(props) {
return cfnStackPropsToCloudFormation(props);
}
}
exports.CfnStack = CfnStack;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnStack.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::Stack";
/**
* Determine whether the given properties match those of a `CfnStackSetProps`
*
* @param properties - the TypeScript properties of a `CfnStackSetProps`
*
* @returns the result of the validation.
*/
function CfnStackSetPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('administrationRoleArn', cdk.validateString)(properties.administrationRoleArn));
errors.collect(cdk.propertyValidator('autoDeployment', CfnStackSet_AutoDeploymentPropertyValidator)(properties.autoDeployment));
errors.collect(cdk.propertyValidator('capabilities', cdk.listValidator(cdk.validateString))(properties.capabilities));
errors.collect(cdk.propertyValidator('description', cdk.validateString)(properties.description));
errors.collect(cdk.propertyValidator('executionRoleName', cdk.validateString)(properties.executionRoleName));
errors.collect(cdk.propertyValidator('operationPreferences', CfnStackSet_OperationPreferencesPropertyValidator)(properties.operationPreferences));
errors.collect(cdk.propertyValidator('parameters', cdk.listValidator(CfnStackSet_ParameterPropertyValidator))(properties.parameters));
errors.collect(cdk.propertyValidator('permissionModel', cdk.validateString)(properties.permissionModel));
errors.collect(cdk.propertyValidator('stackInstancesGroup', cdk.listValidator(CfnStackSet_StackInstancesPropertyValidator))(properties.stackInstancesGroup));
errors.collect(cdk.propertyValidator('stackSetName', cdk.validateString)(properties.stackSetName));
errors.collect(cdk.propertyValidator('tags', cdk.listValidator(cdk.validateCfnTag))(properties.tags));
errors.collect(cdk.propertyValidator('templateBody', cdk.validateString)(properties.templateBody));
errors.collect(cdk.propertyValidator('templateUrl', cdk.validateString)(properties.templateUrl));
return errors.wrap('supplied properties not correct for "CfnStackSetProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet` resource
*
* @param properties - the TypeScript properties of a `CfnStackSetProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet` resource.
*/
// @ts-ignore TS6133
function cfnStackSetPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSetPropsValidator(properties).assertSuccess();
return {
AdministrationRoleARN: cdk.stringToCloudFormation(properties.administrationRoleArn),
AutoDeployment: cfnStackSetAutoDeploymentPropertyToCloudFormation(properties.autoDeployment),
Capabilities: cdk.listMapper(cdk.stringToCloudFormation)(properties.capabilities),
Description: cdk.stringToCloudFormation(properties.description),
ExecutionRoleName: cdk.stringToCloudFormation(properties.executionRoleName),
OperationPreferences: cfnStackSetOperationPreferencesPropertyToCloudFormation(properties.operationPreferences),
Parameters: cdk.listMapper(cfnStackSetParameterPropertyToCloudFormation)(properties.parameters),
PermissionModel: cdk.stringToCloudFormation(properties.permissionModel),
StackInstancesGroup: cdk.listMapper(cfnStackSetStackInstancesPropertyToCloudFormation)(properties.stackInstancesGroup),
StackSetName: cdk.stringToCloudFormation(properties.stackSetName),
Tags: cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),
TemplateBody: cdk.stringToCloudFormation(properties.templateBody),
TemplateURL: cdk.stringToCloudFormation(properties.templateUrl),
};
}
// @ts-ignore TS6133
function CfnStackSetPropsFromCloudFormation(properties) {
properties = properties || {};
return {
administrationRoleArn: properties.AdministrationRoleARN != null ? cfn_parse.FromCloudFormation.getString(properties.AdministrationRoleARN) : undefined,
autoDeployment: properties.AutoDeployment != null ? CfnStackSetAutoDeploymentPropertyFromCloudFormation(properties.AutoDeployment) : undefined,
capabilities: properties.Capabilities != null ? cfn_parse.FromCloudFormation.getStringArray(properties.Capabilities) : undefined,
description: properties.Description != null ? cfn_parse.FromCloudFormation.getString(properties.Description) : undefined,
executionRoleName: properties.ExecutionRoleName != null ? cfn_parse.FromCloudFormation.getString(properties.ExecutionRoleName) : undefined,
operationPreferences: properties.OperationPreferences != null ? CfnStackSetOperationPreferencesPropertyFromCloudFormation(properties.OperationPreferences) : undefined,
parameters: properties.Parameters != null ? cfn_parse.FromCloudFormation.getArray(CfnStackSetParameterPropertyFromCloudFormation)(properties.Parameters) : undefined,
permissionModel: properties.PermissionModel != null ? cfn_parse.FromCloudFormation.getString(properties.PermissionModel) : undefined,
stackInstancesGroup: properties.StackInstancesGroup != null ? cfn_parse.FromCloudFormation.getArray(CfnStackSetStackInstancesPropertyFromCloudFormation)(properties.StackInstancesGroup) : undefined,
stackSetName: properties.StackSetName != null ? cfn_parse.FromCloudFormation.getString(properties.StackSetName) : undefined,
tags: properties.Tags != null ? cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags) : undefined,
templateBody: properties.TemplateBody != null ? cfn_parse.FromCloudFormation.getString(properties.TemplateBody) : undefined,
templateUrl: properties.TemplateURL != null ? cfn_parse.FromCloudFormation.getString(properties.TemplateURL) : undefined,
};
}
/**
* A CloudFormation `AWS::CloudFormation::StackSet`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html
* @external
* @cloudformationResource AWS::CloudFormation::StackSet
*/
class CfnStackSet extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::StackSet`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @param props - resource properties.
* @external
*/
constructor(scope, id, props = {}) {
super(scope, id, { type: CfnStackSet.CFN_RESOURCE_TYPE_NAME, properties: props });
this.attrStackSetId = cdk.Token.asString(this.getAtt('StackSetId'));
this.administrationRoleArn = props.administrationRoleArn;
this.autoDeployment = props.autoDeployment;
this.capabilities = props.capabilities;
this.description = props.description;
this.executionRoleName = props.executionRoleName;
this.operationPreferences = props.operationPreferences;
this.parameters = props.parameters;
this.permissionModel = props.permissionModel;
this.stackInstancesGroup = props.stackInstancesGroup;
this.stackSetName = props.stackSetName;
this.tags = new cdk.TagManager(cdk.TagType.STANDARD, "AWS::CloudFormation::StackSet", props.tags, { tagPropertyName: 'tags' });
this.templateBody = props.templateBody;
this.templateUrl = props.templateUrl;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const props = CfnStackSetPropsFromCloudFormation(resourceProperties);
const ret = new CfnStackSet(scope, id, props);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnStackSet.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
/**
* @external
*/
get cfnProperties() {
return {
administrationRoleArn: this.administrationRoleArn,
autoDeployment: this.autoDeployment,
capabilities: this.capabilities,
description: this.description,
executionRoleName: this.executionRoleName,
operationPreferences: this.operationPreferences,
parameters: this.parameters,
permissionModel: this.permissionModel,
stackInstancesGroup: this.stackInstancesGroup,
stackSetName: this.stackSetName,
tags: this.tags.renderTags(),
templateBody: this.templateBody,
templateUrl: this.templateUrl,
};
}
/**
* @external
*/
renderProperties(props) {
return cfnStackSetPropsToCloudFormation(props);
}
}
exports.CfnStackSet = CfnStackSet;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnStackSet.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::StackSet";
/**
* Determine whether the given properties match those of a `AutoDeploymentProperty`
*
* @param properties - the TypeScript properties of a `AutoDeploymentProperty`
*
* @returns the result of the validation.
*/
function CfnStackSet_AutoDeploymentPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('enabled', cdk.validateBoolean)(properties.enabled));
errors.collect(cdk.propertyValidator('retainStacksOnAccountRemoval', cdk.validateBoolean)(properties.retainStacksOnAccountRemoval));
return errors.wrap('supplied properties not correct for "AutoDeploymentProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.AutoDeployment` resource
*
* @param properties - the TypeScript properties of a `AutoDeploymentProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.AutoDeployment` resource.
*/
// @ts-ignore TS6133
function cfnStackSetAutoDeploymentPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSet_AutoDeploymentPropertyValidator(properties).assertSuccess();
return {
Enabled: cdk.booleanToCloudFormation(properties.enabled),
RetainStacksOnAccountRemoval: cdk.booleanToCloudFormation(properties.retainStacksOnAccountRemoval),
};
}
// @ts-ignore TS6133
function CfnStackSetAutoDeploymentPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return properties;
}
properties = properties || {};
return {
enabled: properties.Enabled != null ? cfn_parse.FromCloudFormation.getBoolean(properties.Enabled) : undefined,
retainStacksOnAccountRemoval: properties.RetainStacksOnAccountRemoval != null ? cfn_parse.FromCloudFormation.getBoolean(properties.RetainStacksOnAccountRemoval) : undefined,
};
}
/**
* Determine whether the given properties match those of a `DeploymentTargetsProperty`
*
* @param properties - the TypeScript properties of a `DeploymentTargetsProperty`
*
* @returns the result of the validation.
*/
function CfnStackSet_DeploymentTargetsPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('accounts', cdk.listValidator(cdk.validateString))(properties.accounts));
errors.collect(cdk.propertyValidator('organizationalUnitIds', cdk.listValidator(cdk.validateString))(properties.organizationalUnitIds));
return errors.wrap('supplied properties not correct for "DeploymentTargetsProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.DeploymentTargets` resource
*
* @param properties - the TypeScript properties of a `DeploymentTargetsProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.DeploymentTargets` resource.
*/
// @ts-ignore TS6133
function cfnStackSetDeploymentTargetsPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSet_DeploymentTargetsPropertyValidator(properties).assertSuccess();
return {
Accounts: cdk.listMapper(cdk.stringToCloudFormation)(properties.accounts),
OrganizationalUnitIds: cdk.listMapper(cdk.stringToCloudFormation)(properties.organizationalUnitIds),
};
}
// @ts-ignore TS6133
function CfnStackSetDeploymentTargetsPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return properties;
}
properties = properties || {};
return {
accounts: properties.Accounts != null ? cfn_parse.FromCloudFormation.getStringArray(properties.Accounts) : undefined,
organizationalUnitIds: properties.OrganizationalUnitIds != null ? cfn_parse.FromCloudFormation.getStringArray(properties.OrganizationalUnitIds) : undefined,
};
}
/**
* Determine whether the given properties match those of a `OperationPreferencesProperty`
*
* @param properties - the TypeScript properties of a `OperationPreferencesProperty`
*
* @returns the result of the validation.
*/
function CfnStackSet_OperationPreferencesPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('failureToleranceCount', cdk.validateNumber)(properties.failureToleranceCount));
errors.collect(cdk.propertyValidator('failureTolerancePercentage', cdk.validateNumber)(properties.failureTolerancePercentage));
errors.collect(cdk.propertyValidator('maxConcurrentCount', cdk.validateNumber)(properties.maxConcurrentCount));
errors.collect(cdk.propertyValidator('maxConcurrentPercentage', cdk.validateNumber)(properties.maxConcurrentPercentage));
errors.collect(cdk.propertyValidator('regionOrder', cdk.listValidator(cdk.validateString))(properties.regionOrder));
return errors.wrap('supplied properties not correct for "OperationPreferencesProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.OperationPreferences` resource
*
* @param properties - the TypeScript properties of a `OperationPreferencesProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.OperationPreferences` resource.
*/
// @ts-ignore TS6133
function cfnStackSetOperationPreferencesPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSet_OperationPreferencesPropertyValidator(properties).assertSuccess();
return {
FailureToleranceCount: cdk.numberToCloudFormation(properties.failureToleranceCount),
FailureTolerancePercentage: cdk.numberToCloudFormation(properties.failureTolerancePercentage),
MaxConcurrentCount: cdk.numberToCloudFormation(properties.maxConcurrentCount),
MaxConcurrentPercentage: cdk.numberToCloudFormation(properties.maxConcurrentPercentage),
RegionOrder: cdk.listMapper(cdk.stringToCloudFormation)(properties.regionOrder),
};
}
// @ts-ignore TS6133
function CfnStackSetOperationPreferencesPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return properties;
}
properties = properties || {};
return {
failureToleranceCount: properties.FailureToleranceCount != null ? cfn_parse.FromCloudFormation.getNumber(properties.FailureToleranceCount) : undefined,
failureTolerancePercentage: properties.FailureTolerancePercentage != null ? cfn_parse.FromCloudFormation.getNumber(properties.FailureTolerancePercentage) : undefined,
maxConcurrentCount: properties.MaxConcurrentCount != null ? cfn_parse.FromCloudFormation.getNumber(properties.MaxConcurrentCount) : undefined,
maxConcurrentPercentage: properties.MaxConcurrentPercentage != null ? cfn_parse.FromCloudFormation.getNumber(properties.MaxConcurrentPercentage) : undefined,
regionOrder: properties.RegionOrder != null ? cfn_parse.FromCloudFormation.getStringArray(properties.RegionOrder) : undefined,
};
}
/**
* Determine whether the given properties match those of a `ParameterProperty`
*
* @param properties - the TypeScript properties of a `ParameterProperty`
*
* @returns the result of the validation.
*/
function CfnStackSet_ParameterPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('parameterKey', cdk.requiredValidator)(properties.parameterKey));
errors.collect(cdk.propertyValidator('parameterKey', cdk.validateString)(properties.parameterKey));
errors.collect(cdk.propertyValidator('parameterValue', cdk.requiredValidator)(properties.parameterValue));
errors.collect(cdk.propertyValidator('parameterValue', cdk.validateString)(properties.parameterValue));
return errors.wrap('supplied properties not correct for "ParameterProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.Parameter` resource
*
* @param properties - the TypeScript properties of a `ParameterProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.Parameter` resource.
*/
// @ts-ignore TS6133
function cfnStackSetParameterPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSet_ParameterPropertyValidator(properties).assertSuccess();
return {
ParameterKey: cdk.stringToCloudFormation(properties.parameterKey),
ParameterValue: cdk.stringToCloudFormation(properties.parameterValue),
};
}
// @ts-ignore TS6133
function CfnStackSetParameterPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return properties;
}
properties = properties || {};
return {
parameterKey: cfn_parse.FromCloudFormation.getString(properties.ParameterKey),
parameterValue: cfn_parse.FromCloudFormation.getString(properties.ParameterValue),
};
}
/**
* Determine whether the given properties match those of a `StackInstancesProperty`
*
* @param properties - the TypeScript properties of a `StackInstancesProperty`
*
* @returns the result of the validation.
*/
function CfnStackSet_StackInstancesPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('deploymentTargets', cdk.requiredValidator)(properties.deploymentTargets));
errors.collect(cdk.propertyValidator('deploymentTargets', CfnStackSet_DeploymentTargetsPropertyValidator)(properties.deploymentTargets));
errors.collect(cdk.propertyValidator('parameterOverrides', cdk.listValidator(CfnStackSet_ParameterPropertyValidator))(properties.parameterOverrides));
errors.collect(cdk.propertyValidator('regions', cdk.requiredValidator)(properties.regions));
errors.collect(cdk.propertyValidator('regions', cdk.listValidator(cdk.validateString))(properties.regions));
return errors.wrap('supplied properties not correct for "StackInstancesProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.StackInstances` resource
*
* @param properties - the TypeScript properties of a `StackInstancesProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::StackSet.StackInstances` resource.
*/
// @ts-ignore TS6133
function cfnStackSetStackInstancesPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnStackSet_StackInstancesPropertyValidator(properties).assertSuccess();
return {
DeploymentTargets: cfnStackSetDeploymentTargetsPropertyToCloudFormation(properties.deploymentTargets),
ParameterOverrides: cdk.listMapper(cfnStackSetParameterPropertyToCloudFormation)(properties.parameterOverrides),
Regions: cdk.listMapper(cdk.stringToCloudFormation)(properties.regions),
};
}
// @ts-ignore TS6133
function CfnStackSetStackInstancesPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return properties;
}
properties = properties || {};
return {
deploymentTargets: CfnStackSetDeploymentTargetsPropertyFromCloudFormation(properties.DeploymentTargets),
parameterOverrides: properties.ParameterOverrides != null ? cfn_parse.FromCloudFormation.getArray(CfnStackSetParameterPropertyFromCloudFormation)(properties.ParameterOverrides) : undefined,
regions: cfn_parse.FromCloudFormation.getStringArray(properties.Regions),
};
}
/**
* Determine whether the given properties match those of a `CfnWaitConditionProps`
*
* @param properties - the TypeScript properties of a `CfnWaitConditionProps`
*
* @returns the result of the validation.
*/
function CfnWaitConditionPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
errors.collect(cdk.propertyValidator('count', cdk.validateNumber)(properties.count));
errors.collect(cdk.propertyValidator('handle', cdk.validateString)(properties.handle));
errors.collect(cdk.propertyValidator('timeout', cdk.validateString)(properties.timeout));
return errors.wrap('supplied properties not correct for "CfnWaitConditionProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFormation::WaitCondition` resource
*
* @param properties - the TypeScript properties of a `CfnWaitConditionProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFormation::WaitCondition` resource.
*/
// @ts-ignore TS6133
function cfnWaitConditionPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnWaitConditionPropsValidator(properties).assertSuccess();
return {
Count: cdk.numberToCloudFormation(properties.count),
Handle: cdk.stringToCloudFormation(properties.handle),
Timeout: cdk.stringToCloudFormation(properties.timeout),
};
}
// @ts-ignore TS6133
function CfnWaitConditionPropsFromCloudFormation(properties) {
properties = properties || {};
return {
count: properties.Count != null ? cfn_parse.FromCloudFormation.getNumber(properties.Count) : undefined,
handle: properties.Handle != null ? cfn_parse.FromCloudFormation.getString(properties.Handle) : undefined,
timeout: properties.Timeout != null ? cfn_parse.FromCloudFormation.getString(properties.Timeout) : undefined,
};
}
/**
* A CloudFormation `AWS::CloudFormation::WaitCondition`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html
* @external
* @cloudformationResource AWS::CloudFormation::WaitCondition
*/
class CfnWaitCondition extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::WaitCondition`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @param props - resource properties.
* @external
*/
constructor(scope, id, props = {}) {
super(scope, id, { type: CfnWaitCondition.CFN_RESOURCE_TYPE_NAME, properties: props });
this.attrData = this.getAtt('Data');
this.count = props.count;
this.handle = props.handle;
this.timeout = props.timeout;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const props = CfnWaitConditionPropsFromCloudFormation(resourceProperties);
const ret = new CfnWaitCondition(scope, id, props);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnWaitCondition.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
/**
* @external
*/
get cfnProperties() {
return {
count: this.count,
handle: this.handle,
timeout: this.timeout,
};
}
/**
* @external
*/
renderProperties(props) {
return cfnWaitConditionPropsToCloudFormation(props);
}
}
exports.CfnWaitCondition = CfnWaitCondition;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnWaitCondition.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::WaitCondition";
/**
* A CloudFormation `AWS::CloudFormation::WaitConditionHandle`.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html
* @external
* @cloudformationResource AWS::CloudFormation::WaitConditionHandle
*/
class CfnWaitConditionHandle extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFormation::WaitConditionHandle`.
*
* @param scope - scope in which this resource is defined.
* @param id - scoped id of the resource.
* @external
*/
constructor(scope, id) {
super(scope, id, { type: CfnWaitConditionHandle.CFN_RESOURCE_TYPE_NAME });
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const ret = new CfnWaitConditionHandle(scope, id);
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* (experimental) Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes.
* @experimental
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnWaitConditionHandle.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
}
exports.CfnWaitConditionHandle = CfnWaitConditionHandle;
/**
* The CloudFormation resource type name for this resource class.
*
* @external
*/
CfnWaitConditionHandle.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFormation::WaitConditionHandle";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmb3JtYXRpb24uZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrRUFBK0U7QUFDL0UsK0RBQStEO0FBQy9ELDhGQUE4RjtBQUM5RixzSEFBc0g7OztBQUV0SCw0QkFBNEIsQ0FBQyxpRUFBaUU7QUFFOUYseUJBQXlCO0FBQ3pCLHlDQUF5QztBQWlCekM7Ozs7OztHQU1HO0FBQ0gsU0FBUywrQkFBK0IsQ0FBQyxVQUFlO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN0RyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxvQkFBb0I7QUFDcEIsU0FBUyxzQ0FBc0MsQ0FBQyxVQUFlO0lBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxVQUFVLENBQUM7S0FBRTtJQUN2RCwrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1RCxPQUFPO1FB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