UNPKG

@aws-cdk/core

Version:

AWS Cloud Development Kit Core Library

951 lines 172 kB
"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmb3JtYXRpb24uZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrRUFBK0U7QUFDL0UsK0RBQStEO0FBQy9ELDhGQUE4RjtBQUM5RixzSEFBc0g7OztBQUV0SCw0QkFBNEIsQ0FBQyxpRUFBaUU7QUFFOUYseUJBQXlCO0FBQ3pCLHlDQUF5QztBQWlCekM7Ozs7OztHQU1HO0FBQ0gsU0FBUywrQkFBK0IsQ0FBQyxVQUFlO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN0RyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxvQkFBb0I7QUFDcEIsU0FBUyxzQ0FBc0MsQ0FBQyxVQUFlO0lBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxVQUFVLENBQUM7S0FBRTtJQUN2RCwrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1RCxPQUFPO1FBQ0wsWUFBWSxFQUFFLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0tBQ2xFLENBQUM7QUFDTixDQUFDO0FBRUQsb0JBQW9CO0FBQ3BCLFNBQVMsd0NBQXdDLENBQUMsVUFBZTtJQUM3RCxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUM5QixPQUFPO1FBQ0gsWUFBWSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztLQUNoRixDQUFDO0FBQ04sQ0FBQzs7Ozs7Ozs7QUFTRCxNQUFhLGlCQUFrQixTQUFRLEdBQUcsQ0FBQyxXQUFXOzs7Ozs7Ozs7SUFtQ2xELFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEYsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBbENEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFvQixFQUFFLEVBQVUsRUFBRSxrQkFBdUIsRUFBRSxPQUE0QztRQUNySSxrQkFBa0IsR0FBRyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRixNQUFNLEtBQUssR0FBRyx3Q0FBd0MsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Ozs7Ozs7SUE2Qk0sT0FBTyxDQUFDLFNBQTRCO1FBQ3ZDLFNBQVMsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLEVBQUUsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNoRyxTQUFTLENBQUMsWUFBWSxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvRSxDQUFDOzs7O0lBRUQsSUFBYyxhQUFhO1FBQ3ZCLE9BQU87WUFDSCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDbEMsQ0FBQztJQUNOLENBQUM7Ozs7SUFDUyxnQkFBZ0IsQ0FBQyxLQUEyQjtRQUNsRCxPQUFPLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7O0FBN0RMLDhDQThEQzs7Ozs7O0FBMUQwQix3Q0FBc0IsR0FBRyxxQ0FBcUMsQ0FBQztBQW1HMUY7Ozs7OztHQU1HO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxVQUFlO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDakcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDbkcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxvQkFBb0I7QUFDcEIsU0FBUyw2QkFBNkIsQ0FBQyxVQUFlO0lBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxVQUFVLENBQUM7S0FBRTtJQUN2RCxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxPQUFPO1FBQ0wsWUFBWSxFQUFFLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ2pFLElBQUksRUFBRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNqRCxXQUFXLEVBQUUsR0FBRyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDL0QsWUFBWSxFQUFFLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ2pFLFVBQVUsRUFBRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztLQUM5RCxDQUFDO0FBQ04sQ0FBQztBQUVELG9CQUFvQjtBQUNwQixTQUFTLCtCQUErQixDQUFDLFVBQWU7SUFDcEQsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDOUIsT0FBTztRQUNILFlBQVksRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDN0UsSUFBSSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM3RCxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3hILFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDM0gsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUN4SCxDQUFDO0FBQ04sQ0FBQzs7Ozs7Ozs7QUFTRCxNQUFhLFFBQVMsU0FBUSxHQUFHLENBQUMsV0FBVzs7Ozs7Ozs7O0lBMkR6QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvRSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQy