aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 108 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnPlan=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnPlan extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_arcregionswitch.CfnPlan",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ARCRegionSwitch::Plan";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPlanPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPlan(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnPlan(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPlan.CFN_RESOURCE_TYPE_NAME}static arnForPlan(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_arcregionswitch_IPlanRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForPlan),error}return resource.planRef.planArn}_associatedAlarms;cdkTagManager;_description;_executionRole;_name;_primaryRegion;_recoveryApproach;_recoveryTimeObjectiveMinutes;_regions;_reportConfiguration;_tags;_triggers;_workflows;constructor(scope,id,props){super(scope,id,{type:CfnPlan.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_arcregionswitch_CfnPlanProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPlan),error}cdk().requireProperty(props,"executionRole",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"recoveryApproach",this),cdk().requireProperty(props,"regions",this),cdk().requireProperty(props,"workflows",this),this._associatedAlarms=props.associatedAlarms,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ARCRegionSwitch::Plan",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._executionRole=props.executionRole,this._name=props.name,this._primaryRegion=props.primaryRegion,this._recoveryApproach=props.recoveryApproach,this._recoveryTimeObjectiveMinutes=props.recoveryTimeObjectiveMinutes,this._regions=props.regions,this._reportConfiguration=props.reportConfiguration,this._tags=props.tags,this._triggers=props.triggers,this._workflows=props.workflows}get planRef(){return{planArn:this.ref}}get associatedAlarms(){return this._associatedAlarms}set associatedAlarms(value){cdk().traceProperty(this.node,"AssociatedAlarms"),this._associatedAlarms=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get executionRole(){return this._executionRole}set executionRole(value){cdk().traceProperty(this.node,"ExecutionRole"),this._executionRole=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get primaryRegion(){return this._primaryRegion}set primaryRegion(value){cdk().traceProperty(this.node,"PrimaryRegion"),this._primaryRegion=value}get recoveryApproach(){return this._recoveryApproach}set recoveryApproach(value){cdk().traceProperty(this.node,"RecoveryApproach"),this._recoveryApproach=value}get recoveryTimeObjectiveMinutes(){return this._recoveryTimeObjectiveMinutes}set recoveryTimeObjectiveMinutes(value){cdk().traceProperty(this.node,"RecoveryTimeObjectiveMinutes"),this._recoveryTimeObjectiveMinutes=value}get regions(){return this._regions}set regions(value){cdk().traceProperty(this.node,"Regions"),this._regions=value}get reportConfiguration(){return this._reportConfiguration}set reportConfiguration(value){cdk().traceProperty(this.node,"ReportConfiguration"),this._reportConfiguration=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get triggers(){return this._triggers}set triggers(value){cdk().traceProperty(this.node,"Triggers"),this._triggers=value}get workflows(){return this._workflows}set workflows(value){cdk().traceProperty(this.node,"Workflows"),this._workflows=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrHealthChecksForPlan(){return this.getAtt("HealthChecksForPlan")}get attrOwner(){return cdk().Token.asString(this.getAtt("Owner",cdk().ResolutionTypeHint.STRING))}get attrPlanHealthChecks(){return cdk().Token.asList(this.getAtt("PlanHealthChecks",cdk().ResolutionTypeHint.STRING_LIST))}get attrRoute53HealthChecks(){return this.getAtt("Route53HealthChecks")}get attrVersion(){return cdk().Token.asString(this.getAtt("Version",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{associatedAlarms:this._associatedAlarms,tags:this.cdkTagManager.renderTags(this._tags),description:this._description,executionRole:this._executionRole,name:this._name,primaryRegion:this._primaryRegion,recoveryApproach:this._recoveryApproach,recoveryTimeObjectiveMinutes:this._recoveryTimeObjectiveMinutes,regions:this._regions,reportConfiguration:this._reportConfiguration,triggers:this._triggers,workflows:this._workflows}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPlan.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPlanPropsToCloudFormation(props)}}exports.CfnPlan=CfnPlan;function CfnPlanAssociatedAlarmPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("alarmType",cdk().requiredValidator)(properties.alarmType)),errors.collect(cdk().propertyValidator("alarmType",cdk().validateString)(properties.alarmType)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.collect(cdk().propertyValidator("resourceIdentifier",cdk().requiredValidator)(properties.resourceIdentifier)),errors.collect(cdk().propertyValidator("resourceIdentifier",cdk().validateString)(properties.resourceIdentifier)),errors.wrap('supplied properties not correct for "AssociatedAlarmProperty"')}function convertCfnPlanAssociatedAlarmPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanAssociatedAlarmPropertyValidator(properties).assertSuccess(),{AlarmType:cdk().stringToCloudFormation(properties.alarmType),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId),ResourceIdentifier:cdk().stringToCloudFormation(properties.resourceIdentifier)}):properties}function CfnPlanAssociatedAlarmPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("alarmType","AlarmType",properties.AlarmType!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmType):void 0),ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addPropertyResult("resourceIdentifier","ResourceIdentifier",properties.ResourceIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceIdentifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanS3ReportOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bucketOwner",cdk().validateString)(properties.bucketOwner)),errors.collect(cdk().propertyValidator("bucketPath",cdk().validateString)(properties.bucketPath)),errors.wrap('supplied properties not correct for "S3ReportOutputConfigurationProperty"')}function convertCfnPlanS3ReportOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanS3ReportOutputConfigurationPropertyValidator(properties).assertSuccess(),{BucketOwner:cdk().stringToCloudFormation(properties.bucketOwner),BucketPath:cdk().stringToCloudFormation(properties.bucketPath)}):properties}function CfnPlanS3ReportOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bucketOwner","BucketOwner",properties.BucketOwner!=null?cfn_parse().FromCloudFormation.getString(properties.BucketOwner):void 0),ret.addPropertyResult("bucketPath","BucketPath",properties.BucketPath!=null?cfn_parse().FromCloudFormation.getString(properties.BucketPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanReportOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3Configuration",cdk().requiredValidator)(properties.s3Configuration)),errors.collect(cdk().propertyValidator("s3Configuration",CfnPlanS3ReportOutputConfigurationPropertyValidator)(properties.s3Configuration)),errors.wrap('supplied properties not correct for "ReportOutputConfigurationProperty"')}function convertCfnPlanReportOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanReportOutputConfigurationPropertyValidator(properties).assertSuccess(),{S3Configuration:convertCfnPlanS3ReportOutputConfigurationPropertyToCloudFormation(properties.s3Configuration)}):properties}function CfnPlanReportOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Configuration","S3Configuration",properties.S3Configuration!=null?CfnPlanS3ReportOutputConfigurationPropertyFromCloudFormation(properties.S3Configuration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanReportConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("reportOutput",cdk().listValidator(CfnPlanReportOutputConfigurationPropertyValidator))(properties.reportOutput)),errors.wrap('supplied properties not correct for "ReportConfigurationProperty"')}function convertCfnPlanReportConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanReportConfigurationPropertyValidator(properties).assertSuccess(),{ReportOutput:cdk().listMapper(convertCfnPlanReportOutputConfigurationPropertyToCloudFormation)(properties.reportOutput)}):properties}function CfnPlanReportConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("reportOutput","ReportOutput",properties.ReportOutput!=null?cfn_parse().FromCloudFormation.getArray(CfnPlanReportOutputConfigurationPropertyFromCloudFormation)(properties.ReportOutput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanTriggerConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("associatedAlarmName",cdk().requiredValidator)(properties.associatedAlarmName)),errors.collect(cdk().propertyValidator("associatedAlarmName",cdk().validateString)(properties.associatedAlarmName)),errors.collect(cdk().propertyValidator("condition",cdk().requiredValidator)(properties.condition)),errors.collect(cdk().propertyValidator("condition",cdk().validateString)(properties.condition)),errors.wrap('supplied properties not correct for "TriggerConditionProperty"')}function convertCfnPlanTriggerConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanTriggerConditionPropertyValidator(properties).assertSuccess(),{AssociatedAlarmName:cdk().stringToCloudFormation(properties.associatedAlarmName),Condition:cdk().stringToCloudFormation(properties.condition)}):properties}function CfnPlanTriggerConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("associatedAlarmName","AssociatedAlarmName",properties.AssociatedAlarmName!=null?cfn_parse().FromCloudFormation.getString(properties.AssociatedAlarmName):void 0),ret.addPropertyResult("condition","Condition",properties.Condition!=null?cfn_parse().FromCloudFormation.getString(properties.Condition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanTriggerPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.collect(cdk().propertyValidator("conditions",cdk().requiredValidator)(properties.conditions)),errors.collect(cdk().propertyValidator("conditions",cdk().listValidator(CfnPlanTriggerConditionPropertyValidator))(properties.conditions)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("minDelayMinutesBetweenExecutions",cdk().requiredValidator)(properties.minDelayMinutesBetweenExecutions)),errors.collect(cdk().propertyValidator("minDelayMinutesBetweenExecutions",cdk().validateNumber)(properties.minDelayMinutesBetweenExecutions)),errors.collect(cdk().propertyValidator("targetRegion",cdk().requiredValidator)(properties.targetRegion)),errors.collect(cdk().propertyValidator("targetRegion",cdk().validateString)(properties.targetRegion)),errors.wrap('supplied properties not correct for "TriggerProperty"')}function convertCfnPlanTriggerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanTriggerPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action),Conditions:cdk().listMapper(convertCfnPlanTriggerConditionPropertyToCloudFormation)(properties.conditions),Description:cdk().stringToCloudFormation(properties.description),MinDelayMinutesBetweenExecutions:cdk().numberToCloudFormation(properties.minDelayMinutesBetweenExecutions),TargetRegion:cdk().stringToCloudFormation(properties.targetRegion)}):properties}function CfnPlanTriggerPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addPropertyResult("conditions","Conditions",properties.Conditions!=null?cfn_parse().FromCloudFormation.getArray(CfnPlanTriggerConditionPropertyFromCloudFormation)(properties.Conditions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("minDelayMinutesBetweenExecutions","MinDelayMinutesBetweenExecutions",properties.MinDelayMinutesBetweenExecutions!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinDelayMinutesBetweenExecutions):void 0),ret.addPropertyResult("targetRegion","TargetRegion",properties.TargetRegion!=null?cfn_parse().FromCloudFormation.getString(properties.TargetRegion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanLambdasPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.wrap('supplied properties not correct for "LambdasProperty"')}function convertCfnPlanLambdasPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanLambdasPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId)}):properties}function CfnPlanLambdasPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanLambdaUngracefulPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("behavior",cdk().validateString)(properties.behavior)),errors.wrap('supplied properties not correct for "LambdaUngracefulProperty"')}function convertCfnPlanLambdaUngracefulPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanLambdaUngracefulPropertyValidator(properties).assertSuccess(),{Behavior:cdk().stringToCloudFormation(properties.behavior)}):properties}function CfnPlanLambdaUngracefulPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("behavior","Behavior",properties.Behavior!=null?cfn_parse().FromCloudFormation.getString(properties.Behavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanCustomActionLambdaConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("lambdas",cdk().requiredValidator)(properties.lambdas)),errors.collect(cdk().propertyValidator("lambdas",cdk().listValidator(CfnPlanLambdasPropertyValidator))(properties.lambdas)),errors.collect(cdk().propertyValidator("regionToRun",cdk().requiredValidator)(properties.regionToRun)),errors.collect(cdk().propertyValidator("regionToRun",cdk().validateString)(properties.regionToRun)),errors.collect(cdk().propertyValidator("retryIntervalMinutes",cdk().requiredValidator)(properties.retryIntervalMinutes)),errors.collect(cdk().propertyValidator("retryIntervalMinutes",cdk().validateNumber)(properties.retryIntervalMinutes)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.collect(cdk().propertyValidator("ungraceful",CfnPlanLambdaUngracefulPropertyValidator)(properties.ungraceful)),errors.wrap('supplied properties not correct for "CustomActionLambdaConfigurationProperty"')}function convertCfnPlanCustomActionLambdaConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanCustomActionLambdaConfigurationPropertyValidator(properties).assertSuccess(),{Lambdas:cdk().listMapper(convertCfnPlanLambdasPropertyToCloudFormation)(properties.lambdas),RegionToRun:cdk().stringToCloudFormation(properties.regionToRun),RetryIntervalMinutes:cdk().numberToCloudFormation(properties.retryIntervalMinutes),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes),Ungraceful:convertCfnPlanLambdaUngracefulPropertyToCloudFormation(properties.ungraceful)}):properties}function CfnPlanCustomActionLambdaConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("lambdas","Lambdas",properties.Lambdas!=null?cfn_parse().FromCloudFormation.getArray(CfnPlanLambdasPropertyFromCloudFormation)(properties.Lambdas):void 0),ret.addPropertyResult("regionToRun","RegionToRun",properties.RegionToRun!=null?cfn_parse().FromCloudFormation.getString(properties.RegionToRun):void 0),ret.addPropertyResult("retryIntervalMinutes","RetryIntervalMinutes",properties.RetryIntervalMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.RetryIntervalMinutes):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addPropertyResult("ungraceful","Ungraceful",properties.Ungraceful!=null?CfnPlanLambdaUngracefulPropertyFromCloudFormation(properties.Ungraceful):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanAsgPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.wrap('supplied properties not correct for "AsgProperty"')}function convertCfnPlanAsgPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanAsgPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId)}):properties}function CfnPlanAsgPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanEc2UngracefulPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("minimumSuccessPercentage",cdk().requiredValidator)(properties.minimumSuccessPercentage)),errors.collect(cdk().propertyValidator("minimumSuccessPercentage",cdk().validateNumber)(properties.minimumSuccessPercentage)),errors.wrap('supplied properties not correct for "Ec2UngracefulProperty"')}function convertCfnPlanEc2UngracefulPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanEc2UngracefulPropertyValidator(properties).assertSuccess(),{MinimumSuccessPercentage:cdk().numberToCloudFormation(properties.minimumSuccessPercentage)}):properties}function CfnPlanEc2UngracefulPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("minimumSuccessPercentage","MinimumSuccessPercentage",properties.MinimumSuccessPercentage!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumSuccessPercentage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanEc2AsgCapacityIncreaseConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asgs",cdk().requiredValidator)(properties.asgs)),errors.collect(cdk().propertyValidator("asgs",cdk().listValidator(CfnPlanAsgPropertyValidator))(properties.asgs)),errors.collect(cdk().propertyValidator("capacityMonitoringApproach",cdk().validateString)(properties.capacityMonitoringApproach)),errors.collect(cdk().propertyValidator("targetPercent",cdk().validateNumber)(properties.targetPercent)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.collect(cdk().propertyValidator("ungraceful",CfnPlanEc2UngracefulPropertyValidator)(properties.ungraceful)),errors.wrap('supplied properties not correct for "Ec2AsgCapacityIncreaseConfigurationProperty"')}function convertCfnPlanEc2AsgCapacityIncreaseConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanEc2AsgCapacityIncreaseConfigurationPropertyValidator(properties).assertSuccess(),{Asgs:cdk().listMapper(convertCfnPlanAsgPropertyToCloudFormation)(properties.asgs),CapacityMonitoringApproach:cdk().stringToCloudFormation(properties.capacityMonitoringApproach),TargetPercent:cdk().numberToCloudFormation(properties.targetPercent),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes),Ungraceful:convertCfnPlanEc2UngracefulPropertyToCloudFormation(properties.ungraceful)}):properties}function CfnPlanEc2AsgCapacityIncreaseConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asgs","Asgs",properties.Asgs!=null?cfn_parse().FromCloudFormation.getArray(CfnPlanAsgPropertyFromCloudFormation)(properties.Asgs):void 0),ret.addPropertyResult("capacityMonitoringApproach","CapacityMonitoringApproach",properties.CapacityMonitoringApproach!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityMonitoringApproach):void 0),ret.addPropertyResult("targetPercent","TargetPercent",properties.TargetPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetPercent):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addPropertyResult("ungraceful","Ungraceful",properties.Ungraceful!=null?CfnPlanEc2UngracefulPropertyFromCloudFormation(properties.Ungraceful):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanExecutionApprovalConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("approvalRole",cdk().requiredValidator)(properties.approvalRole)),errors.collect(cdk().propertyValidator("approvalRole",cdk().validateString)(properties.approvalRole)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.wrap('supplied properties not correct for "ExecutionApprovalConfigurationProperty"')}function convertCfnPlanExecutionApprovalConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanExecutionApprovalConfigurationPropertyValidator(properties).assertSuccess(),{ApprovalRole:cdk().stringToCloudFormation(properties.approvalRole),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes)}):properties}function CfnPlanExecutionApprovalConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("approvalRole","ApprovalRole",properties.ApprovalRole!=null?cfn_parse().FromCloudFormation.getString(properties.ApprovalRole):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanArcRoutingControlStatePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("routingControlArn",cdk().requiredValidator)(properties.routingControlArn)),errors.collect(cdk().propertyValidator("routingControlArn",cdk().validateString)(properties.routingControlArn)),errors.collect(cdk().propertyValidator("state",cdk().requiredValidator)(properties.state)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "ArcRoutingControlStateProperty"')}function convertCfnPlanArcRoutingControlStatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanArcRoutingControlStatePropertyValidator(properties).assertSuccess(),{RoutingControlArn:cdk().stringToCloudFormation(properties.routingControlArn),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnPlanArcRoutingControlStatePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("routingControlArn","RoutingControlArn",properties.RoutingControlArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingControlArn):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanArcRoutingControlConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.collect(cdk().propertyValidator("regionAndRoutingControls",cdk().requiredValidator)(properties.regionAndRoutingControls)),errors.collect(cdk().propertyValidator("regionAndRoutingControls",cdk().hashValidator(cdk().listValidator(CfnPlanArcRoutingControlStatePropertyValidator)))(properties.regionAndRoutingControls)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.wrap('supplied properties not correct for "ArcRoutingControlConfigurationProperty"')}function convertCfnPlanArcRoutingControlConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanArcRoutingControlConfigurationPropertyValidator(properties).assertSuccess(),{CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId),RegionAndRoutingControls:cdk().hashMapper(cdk().listMapper(convertCfnPlanArcRoutingControlStatePropertyToCloudFormation))(properties.regionAndRoutingControls),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes)}):properties}function CfnPlanArcRoutingControlConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addPropertyResult("regionAndRoutingControls","RegionAndRoutingControls",properties.RegionAndRoutingControls!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getArray(CfnPlanArcRoutingControlStatePropertyFromCloudFormation))(properties.RegionAndRoutingControls):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanGlobalAuroraUngracefulPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ungraceful",cdk().validateString)(properties.ungraceful)),errors.wrap('supplied properties not correct for "GlobalAuroraUngracefulProperty"')}function convertCfnPlanGlobalAuroraUngracefulPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanGlobalAuroraUngracefulPropertyValidator(properties).assertSuccess(),{Ungraceful:cdk().stringToCloudFormation(properties.ungraceful)}):properties}function CfnPlanGlobalAuroraUngracefulPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ungraceful","Ungraceful",properties.Ungraceful!=null?cfn_parse().FromCloudFormation.getString(properties.Ungraceful):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanGlobalAuroraConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("behavior",cdk().requiredValidator)(properties.behavior)),errors.collect(cdk().propertyValidator("behavior",cdk().validateString)(properties.behavior)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("databaseClusterArns",cdk().requiredValidator)(properties.databaseClusterArns)),errors.collect(cdk().propertyValidator("databaseClusterArns",cdk().listValidator(cdk().validateString))(properties.databaseClusterArns)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.collect(cdk().propertyValidator("globalClusterIdentifier",cdk().requiredValidator)(properties.globalClusterIdentifier)),errors.collect(cdk().propertyValidator("globalClusterIdentifier",cdk().validateString)(properties.globalClusterIdentifier)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.collect(cdk().propertyValidator("ungraceful",CfnPlanGlobalAuroraUngracefulPropertyValidator)(properties.ungraceful)),errors.wrap('supplied properties not correct for "GlobalAuroraConfigurationProperty"')}function convertCfnPlanGlobalAuroraConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanGlobalAuroraConfigurationPropertyValidator(properties).assertSuccess(),{Behavior:cdk().stringToCloudFormation(properties.behavior),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),DatabaseClusterArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.databaseClusterArns),ExternalId:cdk().stringToCloudFormation(properties.externalId),GlobalClusterIdentifier:cdk().stringToCloudFormation(properties.globalClusterIdentifier),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes),Ungraceful:convertCfnPlanGlobalAuroraUngracefulPropertyToCloudFormation(properties.ungraceful)}):properties}function CfnPlanGlobalAuroraConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("behavior","Behavior",properties.Behavior!=null?cfn_parse().FromCloudFormation.getString(properties.Behavior):void 0),ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("databaseClusterArns","DatabaseClusterArns",properties.DatabaseClusterArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DatabaseClusterArns):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addPropertyResult("globalClusterIdentifier","GlobalClusterIdentifier",properties.GlobalClusterIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalClusterIdentifier):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addPropertyResult("ungraceful","Ungraceful",properties.Ungraceful!=null?CfnPlanGlobalAuroraUngracefulPropertyFromCloudFormation(properties.Ungraceful):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanParallelExecutionBlockConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("steps",cdk().requiredValidator)(properties.steps)),errors.collect(cdk().propertyValidator("steps",cdk().listValidator(CfnPlanStepPropertyValidator))(properties.steps)),errors.wrap('supplied properties not correct for "ParallelExecutionBlockConfigurationProperty"')}function convertCfnPlanParallelExecutionBlockConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanParallelExecutionBlockConfigurationPropertyValidator(properties).assertSuccess(),{Steps:cdk().listMapper(convertCfnPlanStepPropertyToCloudFormation)(properties.steps)}):properties}function CfnPlanParallelExecutionBlockConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("steps","Steps",properties.Steps!=null?cfn_parse().FromCloudFormation.getArray(CfnPlanStepPropertyFromCloudFormation)(properties.Steps):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanRegionSwitchPlanConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.wrap('supplied properties not correct for "RegionSwitchPlanConfigurationProperty"')}function convertCfnPlanRegionSwitchPlanConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanRegionSwitchPlanConfigurationPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId)}):properties}function CfnPlanRegionSwitchPlanConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("crossAccountRole","CrossAccountRole",properties.CrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.CrossAccountRole):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPlanServicePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("clusterArn",cdk().validateString)(properties.clusterArn)),errors.collect(cdk().propertyValidator("crossAccountRole",cdk().validateString)(properties.crossAccountRole)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.collect(cdk().propertyValidator("serviceArn",cdk().validateString)(properties.serviceArn)),errors.wrap('supplied properties not correct for "ServiceProperty"')}function convertCfnPlanServicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlanServicePropertyValidator(properties).assertSuccess(),{ClusterArn:cdk().stringToCloudFormation(properties.clusterArn),CrossAccountRole:cdk().stringToCloudFormation(properties.crossAccountRole),ExternalId:cdk().stringToCloudFormation(properties.externalId),ServiceArn:cdk().stringToCloudFormation(properties.serviceArn)}):properties}function CfnPlanServicePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return ne