aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 217 kB
JavaScript
"use strict";var _a,_b,_c,_d,_e,_f,_g,_h;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnWALWorkspace=exports.CfnStudioSessionMapping=exports.CfnStudio=exports.CfnStep=exports.CfnSecurityConfiguration=exports.CfnInstanceGroupConfig=exports.CfnInstanceFleetConfig=exports.CfnCluster=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");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 CfnCluster extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnCluster(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}constructor(scope,id,props){super(scope,id,{type:CfnCluster.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCluster),error}cdk().requireProperty(props,"instances",this),cdk().requireProperty(props,"jobFlowRole",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"serviceRole",this),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.attrMasterPublicDns=cdk().Token.asString(this.getAtt("MasterPublicDNS",cdk().ResolutionTypeHint.STRING)),this.additionalInfo=props.additionalInfo,this.applications=props.applications,this.autoScalingRole=props.autoScalingRole,this.autoTerminationPolicy=props.autoTerminationPolicy,this.bootstrapActions=props.bootstrapActions,this.configurations=props.configurations,this.customAmiId=props.customAmiId,this.ebsRootVolumeIops=props.ebsRootVolumeIops,this.ebsRootVolumeSize=props.ebsRootVolumeSize,this.ebsRootVolumeThroughput=props.ebsRootVolumeThroughput,this.instances=props.instances,this.jobFlowRole=props.jobFlowRole,this.kerberosAttributes=props.kerberosAttributes,this.logEncryptionKmsKeyId=props.logEncryptionKmsKeyId,this.logUri=props.logUri,this.managedScalingPolicy=props.managedScalingPolicy,this.name=props.name,this.osReleaseLabel=props.osReleaseLabel,this.placementGroupConfigs=props.placementGroupConfigs,this.releaseLabel=props.releaseLabel,this.scaleDownBehavior=props.scaleDownBehavior,this.securityConfiguration=props.securityConfiguration,this.serviceRole=props.serviceRole,this.stepConcurrencyLevel=props.stepConcurrencyLevel,this.steps=props.steps,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EMR::Cluster",props.tags,{tagPropertyName:"tags"}),this.tagsRaw=props.tags,this.visibleToAllUsers=props.visibleToAllUsers,this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::EMR::Cluster' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get cfnProperties(){return{additionalInfo:this.additionalInfo,applications:this.applications,autoScalingRole:this.autoScalingRole,autoTerminationPolicy:this.autoTerminationPolicy,bootstrapActions:this.bootstrapActions,configurations:this.configurations,customAmiId:this.customAmiId,ebsRootVolumeIops:this.ebsRootVolumeIops,ebsRootVolumeSize:this.ebsRootVolumeSize,ebsRootVolumeThroughput:this.ebsRootVolumeThroughput,instances:this.instances,jobFlowRole:this.jobFlowRole,kerberosAttributes:this.kerberosAttributes,logEncryptionKmsKeyId:this.logEncryptionKmsKeyId,logUri:this.logUri,managedScalingPolicy:this.managedScalingPolicy,name:this.name,osReleaseLabel:this.osReleaseLabel,placementGroupConfigs:this.placementGroupConfigs,releaseLabel:this.releaseLabel,scaleDownBehavior:this.scaleDownBehavior,securityConfiguration:this.securityConfiguration,serviceRole:this.serviceRole,stepConcurrencyLevel:this.stepConcurrencyLevel,steps:this.steps,tags:this.tags.renderTags(),visibleToAllUsers:this.visibleToAllUsers}}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",CfnCluster.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterPropsToCloudFormation(props)}}exports.CfnCluster=CfnCluster,_a=JSII_RTTI_SYMBOL_1,CfnCluster[_a]={fqn:"aws-cdk-lib.aws_emr.CfnCluster",version:"2.185.0"},CfnCluster.CFN_RESOURCE_TYPE_NAME="AWS::EMR::Cluster";function CfnClusterApplicationPropertyValidator(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("additionalInfo",cdk().hashValidator(cdk().validateString))(properties.additionalInfo)),errors.collect(cdk().propertyValidator("args",cdk().listValidator(cdk().validateString))(properties.args)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "ApplicationProperty"')}function convertCfnClusterApplicationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterApplicationPropertyValidator(properties).assertSuccess(),{AdditionalInfo:cdk().hashMapper(cdk().stringToCloudFormation)(properties.additionalInfo),Args:cdk().listMapper(cdk().stringToCloudFormation)(properties.args),Name:cdk().stringToCloudFormation(properties.name),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnClusterApplicationPropertyFromCloudFormation(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("additionalInfo","AdditionalInfo",properties.AdditionalInfo!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.AdditionalInfo):void 0),ret.addPropertyResult("args","Args",properties.Args!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Args):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterAutoTerminationPolicyPropertyValidator(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("idleTimeout",cdk().validateNumber)(properties.idleTimeout)),errors.wrap('supplied properties not correct for "AutoTerminationPolicyProperty"')}function convertCfnClusterAutoTerminationPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterAutoTerminationPolicyPropertyValidator(properties).assertSuccess(),{IdleTimeout:cdk().numberToCloudFormation(properties.idleTimeout)}):properties}function CfnClusterAutoTerminationPolicyPropertyFromCloudFormation(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("idleTimeout","IdleTimeout",properties.IdleTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.IdleTimeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterScriptBootstrapActionConfigPropertyValidator(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("args",cdk().listValidator(cdk().validateString))(properties.args)),errors.collect(cdk().propertyValidator("path",cdk().requiredValidator)(properties.path)),errors.collect(cdk().propertyValidator("path",cdk().validateString)(properties.path)),errors.wrap('supplied properties not correct for "ScriptBootstrapActionConfigProperty"')}function convertCfnClusterScriptBootstrapActionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterScriptBootstrapActionConfigPropertyValidator(properties).assertSuccess(),{Args:cdk().listMapper(cdk().stringToCloudFormation)(properties.args),Path:cdk().stringToCloudFormation(properties.path)}):properties}function CfnClusterScriptBootstrapActionConfigPropertyFromCloudFormation(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("args","Args",properties.Args!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Args):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse().FromCloudFormation.getString(properties.Path):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterBootstrapActionConfigPropertyValidator(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("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("scriptBootstrapAction",cdk().requiredValidator)(properties.scriptBootstrapAction)),errors.collect(cdk().propertyValidator("scriptBootstrapAction",CfnClusterScriptBootstrapActionConfigPropertyValidator)(properties.scriptBootstrapAction)),errors.wrap('supplied properties not correct for "BootstrapActionConfigProperty"')}function convertCfnClusterBootstrapActionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterBootstrapActionConfigPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ScriptBootstrapAction:convertCfnClusterScriptBootstrapActionConfigPropertyToCloudFormation(properties.scriptBootstrapAction)}):properties}function CfnClusterBootstrapActionConfigPropertyFromCloudFormation(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("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("scriptBootstrapAction","ScriptBootstrapAction",properties.ScriptBootstrapAction!=null?CfnClusterScriptBootstrapActionConfigPropertyFromCloudFormation(properties.ScriptBootstrapAction):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterConfigurationPropertyValidator(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("classification",cdk().validateString)(properties.classification)),errors.collect(cdk().propertyValidator("configurationProperties",cdk().hashValidator(cdk().validateString))(properties.configurationProperties)),errors.collect(cdk().propertyValidator("configurations",cdk().listValidator(CfnClusterConfigurationPropertyValidator))(properties.configurations)),errors.wrap('supplied properties not correct for "ConfigurationProperty"')}function convertCfnClusterConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterConfigurationPropertyValidator(properties).assertSuccess(),{Classification:cdk().stringToCloudFormation(properties.classification),ConfigurationProperties:cdk().hashMapper(cdk().stringToCloudFormation)(properties.configurationProperties),Configurations:cdk().listMapper(convertCfnClusterConfigurationPropertyToCloudFormation)(properties.configurations)}):properties}function CfnClusterConfigurationPropertyFromCloudFormation(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("classification","Classification",properties.Classification!=null?cfn_parse().FromCloudFormation.getString(properties.Classification):void 0),ret.addPropertyResult("configurationProperties","ConfigurationProperties",properties.ConfigurationProperties!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.ConfigurationProperties):void 0),ret.addPropertyResult("configurations","Configurations",properties.Configurations!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterConfigurationPropertyFromCloudFormation)(properties.Configurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterVolumeSpecificationPropertyValidator(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("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("sizeInGb",cdk().requiredValidator)(properties.sizeInGb)),errors.collect(cdk().propertyValidator("sizeInGb",cdk().validateNumber)(properties.sizeInGb)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeType",cdk().requiredValidator)(properties.volumeType)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "VolumeSpecificationProperty"')}function convertCfnClusterVolumeSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterVolumeSpecificationPropertyValidator(properties).assertSuccess(),{Iops:cdk().numberToCloudFormation(properties.iops),SizeInGB:cdk().numberToCloudFormation(properties.sizeInGb),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnClusterVolumeSpecificationPropertyFromCloudFormation(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("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("sizeInGb","SizeInGB",properties.SizeInGB!=null?cfn_parse().FromCloudFormation.getNumber(properties.SizeInGB):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterEbsBlockDeviceConfigPropertyValidator(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("volumeSpecification",cdk().requiredValidator)(properties.volumeSpecification)),errors.collect(cdk().propertyValidator("volumeSpecification",CfnClusterVolumeSpecificationPropertyValidator)(properties.volumeSpecification)),errors.collect(cdk().propertyValidator("volumesPerInstance",cdk().validateNumber)(properties.volumesPerInstance)),errors.wrap('supplied properties not correct for "EbsBlockDeviceConfigProperty"')}function convertCfnClusterEbsBlockDeviceConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterEbsBlockDeviceConfigPropertyValidator(properties).assertSuccess(),{VolumeSpecification:convertCfnClusterVolumeSpecificationPropertyToCloudFormation(properties.volumeSpecification),VolumesPerInstance:cdk().numberToCloudFormation(properties.volumesPerInstance)}):properties}function CfnClusterEbsBlockDeviceConfigPropertyFromCloudFormation(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("volumeSpecification","VolumeSpecification",properties.VolumeSpecification!=null?CfnClusterVolumeSpecificationPropertyFromCloudFormation(properties.VolumeSpecification):void 0),ret.addPropertyResult("volumesPerInstance","VolumesPerInstance",properties.VolumesPerInstance!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumesPerInstance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterEbsConfigurationPropertyValidator(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("ebsBlockDeviceConfigs",cdk().listValidator(CfnClusterEbsBlockDeviceConfigPropertyValidator))(properties.ebsBlockDeviceConfigs)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.wrap('supplied properties not correct for "EbsConfigurationProperty"')}function convertCfnClusterEbsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterEbsConfigurationPropertyValidator(properties).assertSuccess(),{EbsBlockDeviceConfigs:cdk().listMapper(convertCfnClusterEbsBlockDeviceConfigPropertyToCloudFormation)(properties.ebsBlockDeviceConfigs),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized)}):properties}function CfnClusterEbsConfigurationPropertyFromCloudFormation(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("ebsBlockDeviceConfigs","EbsBlockDeviceConfigs",properties.EbsBlockDeviceConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterEbsBlockDeviceConfigPropertyFromCloudFormation)(properties.EbsBlockDeviceConfigs):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterInstanceTypeConfigPropertyValidator(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("bidPrice",cdk().validateString)(properties.bidPrice)),errors.collect(cdk().propertyValidator("bidPriceAsPercentageOfOnDemandPrice",cdk().validateNumber)(properties.bidPriceAsPercentageOfOnDemandPrice)),errors.collect(cdk().propertyValidator("configurations",cdk().listValidator(CfnClusterConfigurationPropertyValidator))(properties.configurations)),errors.collect(cdk().propertyValidator("customAmiId",cdk().validateString)(properties.customAmiId)),errors.collect(cdk().propertyValidator("ebsConfiguration",CfnClusterEbsConfigurationPropertyValidator)(properties.ebsConfiguration)),errors.collect(cdk().propertyValidator("instanceType",cdk().requiredValidator)(properties.instanceType)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("weightedCapacity",cdk().validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "InstanceTypeConfigProperty"')}function convertCfnClusterInstanceTypeConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterInstanceTypeConfigPropertyValidator(properties).assertSuccess(),{BidPrice:cdk().stringToCloudFormation(properties.bidPrice),BidPriceAsPercentageOfOnDemandPrice:cdk().numberToCloudFormation(properties.bidPriceAsPercentageOfOnDemandPrice),Configurations:cdk().listMapper(convertCfnClusterConfigurationPropertyToCloudFormation)(properties.configurations),CustomAmiId:cdk().stringToCloudFormation(properties.customAmiId),EbsConfiguration:convertCfnClusterEbsConfigurationPropertyToCloudFormation(properties.ebsConfiguration),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Priority:cdk().numberToCloudFormation(properties.priority),WeightedCapacity:cdk().numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnClusterInstanceTypeConfigPropertyFromCloudFormation(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("bidPrice","BidPrice",properties.BidPrice!=null?cfn_parse().FromCloudFormation.getString(properties.BidPrice):void 0),ret.addPropertyResult("bidPriceAsPercentageOfOnDemandPrice","BidPriceAsPercentageOfOnDemandPrice",properties.BidPriceAsPercentageOfOnDemandPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.BidPriceAsPercentageOfOnDemandPrice):void 0),ret.addPropertyResult("configurations","Configurations",properties.Configurations!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterConfigurationPropertyFromCloudFormation)(properties.Configurations):void 0),ret.addPropertyResult("customAmiId","CustomAmiId",properties.CustomAmiId!=null?cfn_parse().FromCloudFormation.getString(properties.CustomAmiId):void 0),ret.addPropertyResult("ebsConfiguration","EbsConfiguration",properties.EbsConfiguration!=null?CfnClusterEbsConfigurationPropertyFromCloudFormation(properties.EbsConfiguration):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterOnDemandCapacityReservationOptionsPropertyValidator(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("capacityReservationPreference",cdk().validateString)(properties.capacityReservationPreference)),errors.collect(cdk().propertyValidator("capacityReservationResourceGroupArn",cdk().validateString)(properties.capacityReservationResourceGroupArn)),errors.collect(cdk().propertyValidator("usageStrategy",cdk().validateString)(properties.usageStrategy)),errors.wrap('supplied properties not correct for "OnDemandCapacityReservationOptionsProperty"')}function convertCfnClusterOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterOnDemandCapacityReservationOptionsPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk().stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationResourceGroupArn:cdk().stringToCloudFormation(properties.capacityReservationResourceGroupArn),UsageStrategy:cdk().stringToCloudFormation(properties.usageStrategy)}):properties}function CfnClusterOnDemandCapacityReservationOptionsPropertyFromCloudFormation(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("capacityReservationPreference","CapacityReservationPreference",properties.CapacityReservationPreference!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationPreference):void 0),ret.addPropertyResult("capacityReservationResourceGroupArn","CapacityReservationResourceGroupArn",properties.CapacityReservationResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationResourceGroupArn):void 0),ret.addPropertyResult("usageStrategy","UsageStrategy",properties.UsageStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.UsageStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterOnDemandProvisioningSpecificationPropertyValidator(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("allocationStrategy",cdk().requiredValidator)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("capacityReservationOptions",CfnClusterOnDemandCapacityReservationOptionsPropertyValidator)(properties.capacityReservationOptions)),errors.wrap('supplied properties not correct for "OnDemandProvisioningSpecificationProperty"')}function convertCfnClusterOnDemandProvisioningSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterOnDemandProvisioningSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:convertCfnClusterOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties.capacityReservationOptions)}):properties}function CfnClusterOnDemandProvisioningSpecificationPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("capacityReservationOptions","CapacityReservationOptions",properties.CapacityReservationOptions!=null?CfnClusterOnDemandCapacityReservationOptionsPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterSpotProvisioningSpecificationPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("blockDurationMinutes",cdk().validateNumber)(properties.blockDurationMinutes)),errors.collect(cdk().propertyValidator("timeoutAction",cdk().requiredValidator)(properties.timeoutAction)),errors.collect(cdk().propertyValidator("timeoutAction",cdk().validateString)(properties.timeoutAction)),errors.collect(cdk().propertyValidator("timeoutDurationMinutes",cdk().requiredValidator)(properties.timeoutDurationMinutes)),errors.collect(cdk().propertyValidator("timeoutDurationMinutes",cdk().validateNumber)(properties.timeoutDurationMinutes)),errors.wrap('supplied properties not correct for "SpotProvisioningSpecificationProperty"')}function convertCfnClusterSpotProvisioningSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterSpotProvisioningSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),BlockDurationMinutes:cdk().numberToCloudFormation(properties.blockDurationMinutes),TimeoutAction:cdk().stringToCloudFormation(properties.timeoutAction),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnClusterSpotProvisioningSpecificationPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("blockDurationMinutes","BlockDurationMinutes",properties.BlockDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.BlockDurationMinutes):void 0),ret.addPropertyResult("timeoutAction","TimeoutAction",properties.TimeoutAction!=null?cfn_parse().FromCloudFormation.getString(properties.TimeoutAction):void 0),ret.addPropertyResult("timeoutDurationMinutes","TimeoutDurationMinutes",properties.TimeoutDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutDurationMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterInstanceFleetProvisioningSpecificationsPropertyValidator(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("onDemandSpecification",CfnClusterOnDemandProvisioningSpecificationPropertyValidator)(properties.onDemandSpecification)),errors.collect(cdk().propertyValidator("spotSpecification",CfnClusterSpotProvisioningSpecificationPropertyValidator)(properties.spotSpecification)),errors.wrap('supplied properties not correct for "InstanceFleetProvisioningSpecificationsProperty"')}function convertCfnClusterInstanceFleetProvisioningSpecificationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterInstanceFleetProvisioningSpecificationsPropertyValidator(properties).assertSuccess(),{OnDemandSpecification:convertCfnClusterOnDemandProvisioningSpecificationPropertyToCloudFormation(properties.onDemandSpecification),SpotSpecification:convertCfnClusterSpotProvisioningSpecificationPropertyToCloudFormation(properties.spotSpecification)}):properties}function CfnClusterInstanceFleetProvisioningSpecificationsPropertyFromCloudFormation(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("onDemandSpecification","OnDemandSpecification",properties.OnDemandSpecification!=null?CfnClusterOnDemandProvisioningSpecificationPropertyFromCloudFormation(properties.OnDemandSpecification):void 0),ret.addPropertyResult("spotSpecification","SpotSpecification",properties.SpotSpecification!=null?CfnClusterSpotProvisioningSpecificationPropertyFromCloudFormation(properties.SpotSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterOnDemandResizingSpecificationPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("capacityReservationOptions",CfnClusterOnDemandCapacityReservationOptionsPropertyValidator)(properties.capacityReservationOptions)),errors.collect(cdk().propertyValidator("timeoutDurationMinutes",cdk().validateNumber)(properties.timeoutDurationMinutes)),errors.wrap('supplied properties not correct for "OnDemandResizingSpecificationProperty"')}function convertCfnClusterOnDemandResizingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterOnDemandResizingSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:convertCfnClusterOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties.capacityReservationOptions),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnClusterOnDemandResizingSpecificationPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("capacityReservationOptions","CapacityReservationOptions",properties.CapacityReservationOptions!=null?CfnClusterOnDemandCapacityReservationOptionsPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addPropertyResult("timeoutDurationMinutes","TimeoutDurationMinutes",properties.TimeoutDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutDurationMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterSpotResizingSpecificationPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("timeoutDurationMinutes",cdk().validateNumber)(properties.timeoutDurationMinutes)),errors.wrap('supplied properties not correct for "SpotResizingSpecificationProperty"')}function convertCfnClusterSpotResizingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterSpotResizingSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnClusterSpotResizingSpecificationPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("timeoutDurationMinutes","TimeoutDurationMinutes",properties.TimeoutDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutDurationMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterInstanceFleetResizingSpecificationsPropertyValidator(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("onDemandResizeSpecification",CfnClusterOnDemandResizingSpecificationPropertyValidator)(properties.onDemandResizeSpecification)),errors.collect(cdk().propertyValidator("spotResizeSpecification",CfnClusterSpotResizingSpecificationPropertyValidator)(properties.spotResizeSpecification)),errors.wrap('supplied properties not correct for "InstanceFleetResizingSpecificationsProperty"')}function convertCfnClusterInstanceFleetResizingSpecificationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterInstanceFleetResizingSpecificationsPropertyValidator(properties).assertSuccess(),{OnDemandResizeSpecification:convertCfnClusterOnDemandResizingSpecificationPropertyToCloudFormation(properties.onDemandResizeSpecification),SpotResizeSpecification:convertCfnClusterSpotResizingSpecificationPropertyToCloudFormation(properties.spotResizeSpecification)}):properties}function CfnClusterInstanceFleetResizingSpecificationsPropertyFromCloudFormation(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("onDemandResizeSpecification","OnDemandResizeSpecification",properties.OnDemandResizeSpecification!=null?CfnClusterOnDemandResizingSpecificationPropertyFromCloudFormation(properties.OnDemandResizeSpecification):void 0),ret.addPropertyResult("spotResizeSpecification","SpotResizeSpecification",properties.SpotResizeSpecification!=null?CfnClusterSpotResizingSpecificationPropertyFromCloudFormation(properties.SpotResizeSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterInstanceFleetConfigPropertyValidator(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("instanceTypeConfigs",cdk().listValidator(CfnClusterInstanceTypeConfigPropertyValidator))(properties.instanceTypeConfigs)),errors.collect(cdk().propertyValidator("launchSpecifications",CfnClusterInstanceFleetProvisioningSpecificationsPropertyValidator)(properties.launchSpecifications)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("resizeSpecifications",CfnClusterInstanceFleetResizingSpecificationsPropertyValidator)(properties.resizeSpecifications)),errors.collect(cdk().propertyValidator("targetOnDemandCapacity",cdk().validateNumber)(properties.targetOnDemandCapacity)),errors.collect(cdk().propertyValidator("targetSpotCapacity",cdk().validateNumber)(properties.targetSpotCapacity)),errors.wrap('supplied properties not correct for "InstanceFleetConfigProperty"')}function convertCfnClusterInstanceFleetConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterInstanceFleetConfigPropertyValidator(properties).assertSuccess(),{InstanceTypeConfigs:cdk().listMapper(convertCfnClusterInstanceTypeConfigPropertyToCloudFormation)(properties.instanceTypeConfigs),LaunchSpecifications:convertCfnClusterInstanceFleetProvisioningSpecificationsPropertyToCloudFormation(properties.launchSpecifications),Name:cdk().stringToCloudFormation(properties.name),ResizeSpecifications:convertCfnClusterInstanceFleetResizingSpecificationsPropertyToCloudFormation(properties.resizeSpecifications),TargetOnDemandCapacity:cdk().numberToCloudFormation(properties.targetOnDemandCapacity),TargetSpotCapacity:cdk().numberToCloudFormation(properties.targetSpotCapacity)}):properties}function CfnClusterInstanceFleetConfigPropertyFromCloudFormation(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("instanceTypeConfigs","InstanceTypeConfigs",properties.InstanceTypeConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterInstanceTypeConfigPropertyFromCloudFormation)(properties.InstanceTypeConfigs):void 0),ret.addPropertyResult("launchSpecifications","LaunchSpecifications",properties.LaunchSpecifications!=null?CfnClusterInstanceFleetProvisioningSpecificationsPropertyFromCloudFormation(properties.LaunchSpecifications):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("resizeSpecifications","ResizeSpecifications",properties.ResizeSpecifications!=null?CfnClusterInstanceFleetResizingSpecificationsPropertyFromCloudFormation(properties.ResizeSpecifications):void 0),ret.addPropertyResult("targetOnDemandCapacity","TargetOnDemandCapacity",properties.TargetOnDemandCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetOnDemandCapacity):void 0),ret.addPropertyResult("targetSpotCapacity","TargetSpotCapacity",properties.TargetSpotCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetSpotCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterScalingConstraintsPropertyValidator(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("maxCapacity",cdk().requiredValidator)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("maxCapacity",cdk().validateNumber)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().requiredValidator)(properties.minCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().validateNumber)(properties.minCapacity)),errors.wrap('supplied properties not correct for "ScalingConstraintsProperty"')}function convertCfnClusterScalingConstraintsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterScalingConstraintsPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk().numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk().numberToCloudFormation(properties.minCapacity)}):properties}function CfnClusterScalingConstraintsPropertyFromCloudFormation(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("maxCapacity","MaxCapacity",properties.MaxCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxCapacity):void 0),ret.addPropertyResult("minCapacity","MinCapacity",properties.MinCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterSimpleScalingPolicyConfigurationPropertyValidator(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("adjustmentType",cdk().validateString)(properties.adjustmentType)),errors.collect(cdk().propertyValidator("coolDown",cdk().validateNumber)(properties.coolDown)),errors.collect(cdk().propertyValidator("scalingAdjustment",cdk().requiredValidator)(properties.scalingAdjustment)),errors.collect(cdk().propertyValidator("scalingAdjustment",cdk().validateNumber)(properties.scalingAdjustment)),errors.wrap('supplied properties not correct for "SimpleScalingPolicyConfigurationProperty"')}function convertCfnClusterSimpleScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterSimpleScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{AdjustmentType:cdk().stringToCloudFormation(properties.adjustmentType),CoolDown:cdk().numberToCloudFormation(properties.coolDown),ScalingAdjustment:cdk().numberToCloudFormation(properties.scalingAdjustment)}):properties}function CfnClusterSimpleScalingPolicyConfigurationPropertyFromCloudFormation(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("adjustmentType","AdjustmentType",properties.AdjustmentType!=nu