Files
2026-05-06 18:55:16 -05:00

2 lines
234 KiB
JavaScript

"use strict";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/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 CfnCluster extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnCluster",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::Cluster";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(cfn_parse().lit`UnexpectedIResolvable`,"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}static isCfnCluster(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCluster.CFN_RESOURCE_TYPE_NAME}static fromClusterId(scope,id,clusterId){class Import extends cdk().Resource{clusterRef;constructor(scope2,id2,clusterId2){super(scope2,id2),this.clusterRef={clusterId:clusterId2}}}return new Import(scope,id,clusterId)}static arnForCluster(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_emr_IClusterRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCluster),error}return new(cfn_parse()).TemplateString("arn:${Partition}:elasticmapreduce:${Region}:${Account}:cluster/${ClusterId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,ClusterId:resource.clusterRef.clusterId})}_additionalInfo;_applications;_autoScalingRole;_autoTerminationPolicy;_bootstrapActions;_configurations;_customAmiId;_ebsRootVolumeIops;_ebsRootVolumeSize;_ebsRootVolumeThroughput;_instances;_jobFlowRole;_kerberosAttributes;_logEncryptionKmsKeyId;_logUri;_managedScalingPolicy;_name;_osReleaseLabel;_placementGroupConfigs;_releaseLabel;_scaleDownBehavior;_securityConfiguration;_serviceRole;_stepConcurrencyLevel;_steps;tags;_tagsRaw;_visibleToAllUsers;cfnPropertyNames={additionalInfo:"AdditionalInfo",applications:"Applications",autoScalingRole:"AutoScalingRole",autoTerminationPolicy:"AutoTerminationPolicy",bootstrapActions:"BootstrapActions",configurations:"Configurations",customAmiId:"CustomAmiId",ebsRootVolumeIops:"EbsRootVolumeIops",ebsRootVolumeSize:"EbsRootVolumeSize",ebsRootVolumeThroughput:"EbsRootVolumeThroughput",instances:"Instances",jobFlowRole:"JobFlowRole",kerberosAttributes:"KerberosAttributes",logEncryptionKmsKeyId:"LogEncryptionKmsKeyId",logUri:"LogUri",managedScalingPolicy:"ManagedScalingPolicy",name:"Name",osReleaseLabel:"OSReleaseLabel",placementGroupConfigs:"PlacementGroupConfigs",releaseLabel:"ReleaseLabel",scaleDownBehavior:"ScaleDownBehavior",securityConfiguration:"SecurityConfiguration",serviceRole:"ServiceRole",stepConcurrencyLevel:"StepConcurrencyLevel",steps:"Steps",tags:"Tags",visibleToAllUsers:"VisibleToAllUsers"};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._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 clusterRef(){return{clusterId:this.ref}}get additionalInfo(){return this._additionalInfo}set additionalInfo(value){cdk().traceProperty(this.node,"AdditionalInfo"),this._additionalInfo=value}get applications(){return this._applications}set applications(value){cdk().traceProperty(this.node,"Applications"),this._applications=value}get autoScalingRole(){return this._autoScalingRole}set autoScalingRole(value){cdk().traceProperty(this.node,"AutoScalingRole"),this._autoScalingRole=value}get autoTerminationPolicy(){return this._autoTerminationPolicy}set autoTerminationPolicy(value){cdk().traceProperty(this.node,"AutoTerminationPolicy"),this._autoTerminationPolicy=value}get bootstrapActions(){return this._bootstrapActions}set bootstrapActions(value){cdk().traceProperty(this.node,"BootstrapActions"),this._bootstrapActions=value}get configurations(){return this._configurations}set configurations(value){cdk().traceProperty(this.node,"Configurations"),this._configurations=value}get customAmiId(){return this._customAmiId}set customAmiId(value){cdk().traceProperty(this.node,"CustomAmiId"),this._customAmiId=value}get ebsRootVolumeIops(){return this._ebsRootVolumeIops}set ebsRootVolumeIops(value){cdk().traceProperty(this.node,"EbsRootVolumeIops"),this._ebsRootVolumeIops=value}get ebsRootVolumeSize(){return this._ebsRootVolumeSize}set ebsRootVolumeSize(value){cdk().traceProperty(this.node,"EbsRootVolumeSize"),this._ebsRootVolumeSize=value}get ebsRootVolumeThroughput(){return this._ebsRootVolumeThroughput}set ebsRootVolumeThroughput(value){cdk().traceProperty(this.node,"EbsRootVolumeThroughput"),this._ebsRootVolumeThroughput=value}get instances(){return this._instances}set instances(value){cdk().traceProperty(this.node,"Instances"),this._instances=value}get jobFlowRole(){return this._jobFlowRole}set jobFlowRole(value){cdk().traceProperty(this.node,"JobFlowRole"),this._jobFlowRole=value}get kerberosAttributes(){return this._kerberosAttributes}set kerberosAttributes(value){cdk().traceProperty(this.node,"KerberosAttributes"),this._kerberosAttributes=value}get logEncryptionKmsKeyId(){return this._logEncryptionKmsKeyId}set logEncryptionKmsKeyId(value){cdk().traceProperty(this.node,"LogEncryptionKmsKeyId"),this._logEncryptionKmsKeyId=value}get logUri(){return this._logUri}set logUri(value){cdk().traceProperty(this.node,"LogUri"),this._logUri=value}get managedScalingPolicy(){return this._managedScalingPolicy}set managedScalingPolicy(value){cdk().traceProperty(this.node,"ManagedScalingPolicy"),this._managedScalingPolicy=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get osReleaseLabel(){return this._osReleaseLabel}set osReleaseLabel(value){cdk().traceProperty(this.node,"OSReleaseLabel"),this._osReleaseLabel=value}get placementGroupConfigs(){return this._placementGroupConfigs}set placementGroupConfigs(value){cdk().traceProperty(this.node,"PlacementGroupConfigs"),this._placementGroupConfigs=value}get releaseLabel(){return this._releaseLabel}set releaseLabel(value){cdk().traceProperty(this.node,"ReleaseLabel"),this._releaseLabel=value}get scaleDownBehavior(){return this._scaleDownBehavior}set scaleDownBehavior(value){cdk().traceProperty(this.node,"ScaleDownBehavior"),this._scaleDownBehavior=value}get securityConfiguration(){return this._securityConfiguration}set securityConfiguration(value){cdk().traceProperty(this.node,"SecurityConfiguration"),this._securityConfiguration=value}get serviceRole(){return this._serviceRole}set serviceRole(value){cdk().traceProperty(this.node,"ServiceRole"),this._serviceRole=value}get stepConcurrencyLevel(){return this._stepConcurrencyLevel}set stepConcurrencyLevel(value){cdk().traceProperty(this.node,"StepConcurrencyLevel"),this._stepConcurrencyLevel=value}get steps(){return this._steps}set steps(value){cdk().traceProperty(this.node,"Steps"),this._steps=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get visibleToAllUsers(){return this._visibleToAllUsers}set visibleToAllUsers(value){cdk().traceProperty(this.node,"VisibleToAllUsers"),this._visibleToAllUsers=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrMasterPublicDns(){return cdk().Token.asString(this.getAtt("MasterPublicDNS",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterPropsToCloudFormation(props)}}exports.CfnCluster=CfnCluster;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!=null?cfn_parse().FromCloudFormation.getString(properties.AdjustmentType):void 0),ret.addPropertyResult("coolDown","CoolDown",properties.CoolDown!=null?cfn_parse().FromCloudFormation.getNumber(properties.CoolDown):void 0),ret.addPropertyResult("scalingAdjustment","ScalingAdjustment",properties.ScalingAdjustment!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScalingAdjustment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterScalingActionPropertyValidator(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("market",cdk().validateString)(properties.market)),errors.collect(cdk().propertyValidator("simpleScalingPolicyConfiguration",cdk().requiredValidator)(properties.simpleScalingPolicyConfiguration)),errors.collect(cdk().propertyValidator("simpleScalingPolicyConfiguration",CfnClusterSimpleScalingPolicyConfigurationPropertyValidator)(properties.simpleScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "ScalingActionProperty"')}function convertCfnClusterScalingActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterScalingActionPropertyValidator(properties).assertSuccess(),{Market:cdk().stringToCloudFormation(properties.market),SimpleScalingPolicyConfiguration:convertCfnClusterSimpleScalingPolicyConfigurationPropertyToCloudFormation(properties.simpleScalingPolicyConfiguration)}):properties}function CfnClusterScalingActionPropertyFromCloudFormation(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("market","Market",properties.Market!=null?cfn_parse().FromCloudFormation.getString(properties.Market):void 0),ret.addPropertyResult("simpleScalingPolicyConfiguration","SimpleScalingPolicyConfiguration",properties.SimpleScalingPolicyConfiguration!=null?CfnClusterSimpleScalingPolicyConfigurationPropertyFromCloudFormation(properties.SimpleScalingPolicyConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterMetricDimensionPropertyValidator(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("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "MetricDimensionProperty"')}function convertCfnClusterMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterMetricDimensionPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnClusterMetricDimensionPropertyFromCloudFormation(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("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterCloudWatchAlarmDefinitionPropertyValidator(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("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnClusterMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("evaluationPeriods",cdk().validateNumber)(properties.evaluationPeriods)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("period",cdk().requiredValidator)(properties.period)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.collect(cdk().propertyValidator("threshold",cdk().requiredValidator)(properties.threshold)),errors.collect(cdk().propertyValidator("threshold",cdk().validateNumber)(properties.threshold)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "CloudWatchAlarmDefinitionProperty"')}function convertCfnClusterCloudWatchAlarmDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterCloudWatchAlarmDefinitionPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),Dimensions:cdk().listMapper(convertCfnClusterMetricDimensionPropertyToCloudFormation)(properties.dimensions),EvaluationPeriods:cdk().numberToCloudFormation(properties.evaluationPeriods),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace),Period:cdk().numberToCloudFormation(properties.period),Statistic:cdk().stringToCloudFormation(properties.statistic),Threshold:cdk().numberToCloudFormation(properties.threshold),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnClusterCloudWatchAlarmDefinitionPropertyFromCloudFormation(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("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterMetricDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("evaluationPeriods","EvaluationPeriods",properties.EvaluationPeriods!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationPeriods):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addPropertyResult("threshold","Threshold",properties.Threshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.Threshold):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterScalingTriggerPropertyValidator(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("cloudWatchAlarmDefinition",cdk().requiredValidator)(properties.cloudWatchAlarmDefinition)),errors.collect(cdk().propertyValidator("cloudWatchAlarmDefinition",CfnClusterCloudWatchAlarmDefinitionPropertyValidator)(properties.cloudWatchAlarmDefinition)),errors.wrap('supplied properties not correct for "ScalingTriggerProperty"')}function convertCfnClusterScalingTriggerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterScalingTriggerPropertyValidator(properties).assertSuccess(),{CloudWatchAlarmDefinition:convertCfnClusterCloudWatchAlarmDefinitionPropertyToCloudFormation(properties.cloudWatchAlarmDefinition)}):properties}function CfnClusterScalingTriggerPropertyFromCloudFormation(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("cloudWatchAlarmDefinition","CloudWatchAlarmDefinition",properties.CloudWatchAlarmDefinition!=null?CfnClusterCloudWatchAlarmDefinitionPropertyFromCloudFormation(properties.CloudWatchAlarmDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterScalingRulePropertyValidator(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",CfnClusterScalingActionPropertyValidator)(properties.action)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("trigger",cdk().requiredValidator)(properties.trigger)),errors.collect(cdk().propertyValidator("trigger",CfnClusterScalingTriggerPropertyValidator)(properties.trigger)),errors.wrap('supplied properties not correct for "ScalingRuleProperty"')}function convertCfnClusterScalingRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterScalingRulePropertyValidator(properties).assertSuccess(),{Action:convertCfnClusterScalingActionPropertyToCloudFormation(properties.action),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),Trigger:convertCfnClusterScalingTriggerPropertyToCloudFormation(properties.trigger)}):properties}function CfnClusterScalingRulePropertyFromCloudFormation(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?CfnClusterScalingActionPropertyFromCloudFormation(properties.Action):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("trigger","Trigger",properties.Trigger!=null?CfnClusterScalingTriggerPropertyFromCloudFormation(properties.Trigger):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterAutoScalingPolicyPropertyValidator(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("constraints",cdk().requiredValidator)(properties.constraints)),errors.collect(cdk().propertyValidator("constraints",CfnClusterScalingConstraintsPropertyValidator)(properties.constraints)),errors.collect(cdk().propertyValidator("rules",cdk().requiredValidator)(properties.rules)),errors.collect(cdk().propertyValidator("rules",cdk().listValidator(CfnClusterScalingRulePropertyValidator))(properties.rules)),errors.wrap('supplied properties not correct for "AutoScalingPolicyProperty"')}function convertCfnClusterAutoScalingPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterAutoScalingPolicyPropertyValidator(properties).assertSuccess(),{Constraints:convertCfnClusterScalingConstraintsPropertyToCloudFormation(properties.constraints),Rules:cdk().listMapper(convertCfnClusterScalingRulePropertyToCloudFormation)(properties.rules)}):properties}function CfnClusterAutoScalingPolicyPropertyFromCloudFormation(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("constraints","Constraints",properties.Constraints!=null?CfnClusterScalingConstraintsPropertyFromCloudFormation(properties.Constraints):void 0),ret.addPropertyResult("rules","Rules",properties.Rules!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterScalingRulePropertyFromCloudFormation)(properties.Rules):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterInstanceGroupConfigPropertyValidator(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("autoScalingPolicy",CfnClusterAutoScalingPolicyPropertyValidator)(properties.autoScalingPolicy)),errors.collect(cdk().propertyValidator("bidPrice",cdk().validateString)(properties.bidPrice)),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("instanceCount",cdk().requiredValidator)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceCount",cdk().validateNumber)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceType",cdk().requiredValidator)(properties.instanceType)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("market",cdk().validateString)(properties.market)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "InstanceGroupConfigProperty"')}function convertCfnClusterInstanceGroupConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterInstanceGroupConfigPropertyValidator(properties).assertSuccess(),{AutoScalingPolicy:convertCfnClusterAutoScalingPolicyPropertyToCloudFormation(properties.autoScalingPolicy),BidPrice:cdk().stringToCloudFormation(properties.bidPrice),Configurations:cdk().listMapper(convertCfnClusterConfigurationPropertyToCloudFormation)(properties.configurations),CustomAmiId:cdk().stringToCloudFormation(properties.customAmiId),EbsConfiguration:convertCfnClusterEbsConfigurationPropertyToCloudFormation(properties.ebsConfiguration),InstanceCount:cdk().numberToCloudFormation(properties.instanceCount),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Market:cdk().stringToCloudFormation(properties.market),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnClusterInstanceGroupConfigPropertyFromCloudFormation(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("autoScalingPolicy","AutoScalingPolicy",properties.AutoScalingPolicy!=null?CfnClusterAutoScalingPolicyPropertyFromCloudFormation(properties.AutoScalingPolicy):void 0),ret.addPropertyResult("bidPrice","BidPrice",properties.BidPrice!=null?cfn_parse().FromCloudFormation.getString(properties.BidPrice):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("instanceCount","InstanceCount",properties.InstanceCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstanceCount):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("market","Market",properties.Market!=null?cfn_parse().FromCloudFormation.getString(properties.Market):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterPlacementTypePropertyValidator(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("availabilityZone",cdk().requiredValidator)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.wrap('supplied properties not correct for "PlacementTypeProperty"')}function convertCfnClusterPlacementTypePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPlacementTypePropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone)}):properties}function CfnClusterPlacementTypePropertyFromCloudFormation(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("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterJobFlowInstancesConfigPropertyValidator(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("additionalMasterSecurityGroups",cdk().listValidator(cdk().validateString))(properties.additionalMasterSecurityGroups)),errors.collect(cdk().propertyValidator("additionalSlaveSecurityGroups",cdk().listValidator(cdk().validateString))(properties.additionalSlaveSecurityGroups)),errors.collect(cdk().propertyValidator("coreInstanceFleet",CfnClusterInstanceFleetConfigPropertyValidator)(properties.coreInstanceFleet)),errors.collect(cdk().propertyValidator("coreInstanceGroup",CfnClusterInstanceGroupConfigPropertyValidator)(properties.coreInstanceGroup)),errors.collect(cdk().propertyValidator("ec2KeyName",cdk().validateString)(properties.ec2KeyName)),errors.collect(cdk().propertyValidator("ec2SubnetId",cdk().validateString)(properties.ec2SubnetId)),errors.collect(cdk().propertyValidator("ec2SubnetIds",cdk().listValidator(cdk().validateString))(properties.ec2SubnetIds)),errors.collect(cdk().propertyValidator("emrManagedMasterSecurityGroup",cdk().validateString)(properties.emrManagedMasterSecurityGroup)),errors.collect(cdk().propertyValidator("emrManagedSlaveSecurityGroup",cdk().validateString)(properties.emrManagedSlaveSecurityGroup)),errors.collect(cdk().propertyValidator("hadoopVersion",cdk().validateString)(properties.hadoopVersion)),errors.collect(cdk().propertyValidator("keepJobFlowAliveWhenNoSteps",cdk().validateBoolean)(properties.keepJobFlowAliveWhenNoSteps)),errors.collect(cdk().propertyValidator("masterInstanceFleet",CfnClusterInstanceFleetConfigPropertyValidator)(properties.masterInstanceFleet)),errors.collect(cdk().propertyValidator("masterInstanceGroup",CfnClusterInstanceGroupConfigPropertyValidator)(properties.masterInstanceGroup)),errors.collect(cdk().propertyValidator("placement",CfnClusterPlacementTypePropertyValidator)(properties.placement)),errors.collect(cdk().propertyValidator("serviceAccessSecurityGroup",cdk().validateString)(properties.serviceAccessSecurityGroup)),errors.collect(cdk().propertyValidator("taskInstanceFleets",cdk().listValidator(CfnClusterInstanceFleetConfigPropertyValidator))(properties.taskInstanceFleets)),errors.collect(cdk().propertyValidator("taskInstanceGroups",cdk().listValidator(CfnClusterInstanceGroupConfigPropertyValidator))(properties.taskInstanceGroups)),errors.collect(cdk().propertyValidator("terminationProtected",cdk().validateBoolean)(properties.terminationProtected)),errors.collect(cdk().propertyValidator("unhealthyNodeReplacement",cdk().validateBoolean)(properties.unhealthyNodeReplacement)),errors.wrap('supplied properties not correct for "JobFlowInstancesConfigProperty"')}function convertCfnClusterJobFlowInstancesConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterJobFlowInstancesConfigPropertyValidator(properties).assertSuccess(),{AdditionalMasterSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.additionalMasterSecurityGroups),AdditionalSlaveSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.additionalSlaveSecurityGroups),CoreInstanceFleet:convertCfnClusterInstanceFleetConfigPropertyToCloudFormation(properties.coreInstanceFleet),CoreInstanceGroup:convertCfnClusterInstanceGroupConfigPropertyToCloudFormation(properties.coreInstanceGroup),Ec2KeyName:cdk().stringToCloudFormation(properties.ec2KeyName),Ec2SubnetId:cdk().stringToCloudFormation(properties.ec2SubnetId),Ec2SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.ec2SubnetIds),EmrManagedMasterSecurityGroup:cdk().stringToCloudFormation(properties.emrManagedMasterSecurityGroup),EmrManagedSlaveSecurityGroup:cdk().stringToCloudFormation(properties.emrManagedSlaveSecurityGroup),HadoopVersion:cdk().stringToCloudFormation(properties.hadoopVersion),KeepJobFlowAliveWhenNoSteps:cdk().booleanToCloudFormation(properties.keepJobFlowAliveWhenNoSteps),MasterInstanceFleet:convertCfnClusterInstanceFleetConfigPropertyToCloudFormation(properties.masterInstanceFleet),MasterInstanceGroup:convertCfnClusterInstanceGroupConfigPropertyToCloudFormation(properties.masterInstanceGroup),Placement:convertCfnClusterPlacementTypePropertyToCloudFormation(properties.placement),ServiceAccessSecurityGroup:cdk().stringToCloudFormation(properties.serviceAccessSecurityGroup),TaskInstanceFleets:cdk().listMapper(convertCfnClusterInstanceFleetConfigPropertyToCloudFormation)(properties.taskInstanceFleets),TaskInstanceGroups:cdk().listMapper(convertCfnClusterInstanceGroupConfigPropertyToCloudFormation)(properties.taskInstanceGroups),TerminationProtected:cdk().booleanToCloudFormation(properties.terminationProtected),UnhealthyNodeReplacement:cdk().booleanToCloudFormation(properties.unhealthyNodeReplacement)}):properties}function CfnClusterJobFlowInstancesConfigPropertyFromCloudFormation(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("additionalMasterSecurityGroups","AdditionalMasterSecurityGroups",properties.AdditionalMasterSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AdditionalMasterSecurityGroups):void 0),ret.addPropertyResult("additionalSlaveSecurityGroups","AdditionalSlaveSecurityGroups",properties.AdditionalSlaveSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AdditionalSlaveSecurityGroups):void 0),ret.addPropertyResult("coreInstanceFleet","CoreInstanceFleet",properties.CoreInstanceFleet!=null?CfnClusterInstanceFleetConfigPropertyFromCloudFormation(properties.CoreInstanceFleet):void 0),ret.addPropertyResult("coreInstanceGroup","CoreInstanceGroup",properties.CoreInstanceGroup!=null?CfnClusterInstanceGroupConfigPropertyFromCloudFormation(properties.CoreInstanceGroup):void 0),ret.addPropertyResult("ec2KeyName","Ec2KeyName",properties.Ec2KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.Ec2KeyName):void 0),ret.addPropertyResult("ec2SubnetId","Ec2SubnetId",properties.Ec2SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.Ec2SubnetId):void 0),ret.addPropertyResult("ec2SubnetIds","Ec2SubnetIds",properties.Ec2SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Ec2SubnetIds):void 0),ret.addPropertyResult("emrManagedMasterSecurityGroup","EmrManagedMasterSecurityGroup",properties.EmrManagedMasterSecurityGroup!=null?cfn_parse().FromCloudFormation.getString(properties.EmrManagedMasterSecurityGroup):void 0),ret.addPropertyResult("emrManagedSlaveSecurityGroup","EmrManagedSlaveSecurityGroup",properties.EmrManagedSlaveSecurityGroup!=null?cfn_parse().FromCloudFormation.getString(properties.EmrManagedSlaveSecurityGroup):void 0),ret.addPropertyResult("hadoopVersion","HadoopVersion",properties.HadoopVersion!=null?cfn_parse().FromCloudFormation.getString(properties.HadoopVersion):void 0),ret.addPropertyResult("keepJobFlowAliveWhenNoSteps","KeepJobFlowAliveWhenNoSteps",properties.KeepJobFlowAliveWhenNoSteps!=null?cfn_parse().FromCloudFormation.getBoolean(properties.KeepJobFlowAliveWhenNoSteps):void 0),ret.addPropertyResult("masterInstanceFleet","MasterInstanceFleet",properties.MasterInstanceFleet!=null?CfnClusterInstanceFleetConfigPropertyFromCloudFormation(properties.MasterInstanceFleet):void 0),ret.addPropertyResult("masterInstanceGroup","MasterInstanceGroup",properties.MasterInstanceGroup!=null?CfnClusterInstanceGroupConfigPropertyFromCloudFormation(properties.MasterInstanceGroup):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnClusterPlacementTypePropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("serviceAccessSecurityGroup","ServiceAccessSecurityGroup",properties.ServiceAccessSecurityGroup!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceAccessSecurityGroup):void 0),ret.addPropertyResult("taskInstanceFleets","TaskInstanceFleets",properties.TaskInstanceFleets!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterInstanceFleetConfigPropertyFromCloudFormation)(properties.TaskInstanceFleets):void 0),ret.addPropertyResult("taskInstanceGroups","TaskInstanceGroups",properties.TaskInstanceGroups!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterInstanceGroupConfigPropertyFromCloudFormation)(properties.TaskInstanceGroups):void 0),ret.addPropertyResult("terminationProtected","TerminationProtected",properties.TerminationProtected!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TerminationProtected):void 0),ret.addPropertyResult("unhealthyNodeReplacement","UnhealthyNodeReplacement",properties.UnhealthyNodeReplacement!=null?cfn_parse().FromCloudFormation.getBoolean(properties.UnhealthyNodeReplacement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterKerberosAttributesPropertyValidator(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("adDomainJoinPassword",cdk().validateString)(properties.adDomainJoinPassword)),errors.collect(cdk().propertyValidator("adDomainJoinUser",cdk().validateString)(properties.adDomainJoinUser)),errors.collect(cdk().propertyValidator("crossRealmTrustPrincipalPassword",cdk().validateString)(properties.crossRealmTrustPrincipalPassword)),errors.collect(cdk().propertyValidator("kdcAdminPassword",cdk().requiredValidator)(properties.kdcAdminPassword)),errors.collect(cdk().propertyValidator("kdcAdminPassword",cdk().validateString)(properties.kdcAdminPassword)),errors.collect(cdk().propertyValidator("realm",cdk().requiredValidator)(properties.realm)),errors.collect(cdk().propertyValidator("realm",cdk().validateString)(properties.realm)),errors.wrap('supplied properties not correct for "KerberosAttributesProperty"')}function convertCfnClusterKerberosAttributesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterKerberosAttributesPropertyValidator(properties).assertSuccess(),{ADDomainJoinPassword:cdk().stringToCloudFormation(properties.adDomainJoinPassword),ADDomainJoinUser:cdk().stringToCloudFormation(properties.adDomainJoinUser),CrossRealmTrustPrincipalPassword:cdk().stringToCloudFormation(properties.crossRealmTrustPrincipalPassword),KdcAdminPassword:cdk().stringToCloudFormation(properties.kdcAdminPassword),Realm:cdk().stringToCloudFormation(properties.realm)}):properties}function CfnClusterKerberosAttributesPropertyFromCloudFormation(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("adDomainJoinPassword","ADDomainJoinPassword",properties.ADDomainJoinPassword!=null?cfn_parse().FromCloudFormation.getString(properties.ADDomainJoinPassword):void 0),ret.addPropertyResult("adDomainJoinUser","ADDomainJoinUser",properties.ADDomainJoinUser!=null?cfn_parse().FromCloudFormation.getString(properties.ADDomainJoinUser):void 0),ret.addPropertyResult("crossRealmTrustPrincipalPassword","CrossRealmTrustPrincipalPassword",properties.CrossRealmTrustPrincipalPassword!=null?cfn_parse().FromCloudFormation.getString(properties.CrossRealmTrustPrincipalPassword):void 0),ret.addPropertyResult("kdcAdminPassword","KdcAdminPassword",properties.KdcAdminPassword!=null?cfn_parse().FromCloudFormation.getString(properties.KdcAdminPassword):void 0),ret.addPropertyResult("realm","Realm",properties.Realm!=null?cfn_parse().FromCloudFormation.getString(properties.Realm):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterComputeLimitsPropertyValidator(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("maximumCapacityUnits",cdk().requiredValidator)(properties.maximumCapacityUnits)),errors.collect(cdk().propertyValidator("maximumCapacityUnits",cdk().validateNumber)(properties.maximumCapacityUnits)),errors.collect(cdk().propertyValidator("maximumCoreCapacityUnits",cdk().validateNumber)(properties.maximumCoreCapacityUnits)),errors.collect(cdk().propertyValidator("maximumOnDemandCapacityUnits",cdk().validateNumber)(properties.maximumOnDemandCapacityUnits)),errors.collect(cdk().propertyValidator("minimumCapacityUnits",cdk().requiredValidator)(properties.minimumCapacityUnits)),errors.collect(cdk().propertyValidator("minimumCapacityUnits",cdk().validateNumber)(properties.minimumCapacityUnits)),errors.collect(cdk().propertyValidator("unitType",cdk().requiredValidator)(properties.unitType)),errors.collect(cdk().propertyValidator("unitType",cdk().validateString)(properties.unitType)),errors.wrap('supplied properties not correct for "ComputeLimitsProperty"')}function convertCfnClusterComputeLimitsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterComputeLimitsPropertyValidator(properties).assertSuccess(),{MaximumCapacityUnits:cdk().numberToCloudFormation(properties.maximumCapacityUnits),MaximumCoreCapacityUnits:cdk().numberToCloudFormation(properties.maximumCoreCapacityUnits),MaximumOnDemandCapacityUnits:cdk().numberToCloudFormation(properties.maximumOnDemandCapacityUnits),MinimumCapacityUnits:cdk().numberToCloudFormation(properties.minimumCapacityUnits),UnitType:cdk().stringToCloudFormation(properties.unitType)}):properties}function CfnClusterComputeLimitsPropertyFromCloudFormation(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("maximumCapacityUnits","MaximumCapacityUnits",properties.MaximumCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumCapacityUnits):void 0),ret.addPropertyResult("maximumCoreCapacityUnits","MaximumCoreCapacityUnits",properties.MaximumCoreCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumCoreCapacityUnits):void 0),ret.addPropertyResult("maximumOnDemandCapacityUnits","MaximumOnDemandCapacityUnits",properties.MaximumOnDemandCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumOnDemandCapacityUnits):void 0),ret.addPropertyResult("minimumCapacityUnits","MinimumCapacityUnits",properties.MinimumCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumCapacityUnits):void 0),ret.addPropertyResult("unitType","UnitType",properties.UnitType!=null?cfn_parse().FromCloudFormation.getString(properties.UnitType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterManagedScalingPolicyPropertyValidator(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("computeLimits",CfnClusterComputeLimitsPropertyValidator)(properties.computeLimits)),errors.collect(cdk().propertyValidator("scalingStrategy",cdk().validateString)(properties.scalingStrategy)),errors.collect(cdk().propertyValidator("utilizationPerformanceIndex",cdk().validateNumber)(properties.utilizationPerformanceIndex)),errors.wrap('supplied properties not correct for "ManagedScalingPolicyProperty"')}function convertCfnClusterManagedScalingPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterManagedScalingPolicyPropertyValidator(properties).assertSuccess(),{ComputeLimits:convertCfnClusterComputeLimitsPropertyToCloudFormation(properties.computeLimits),ScalingStrategy:cdk().stringToCloudFormation(properties.scalingStrategy),UtilizationPerformanceIndex:cdk().numberToCloudFormation(properties.utilizationPerformanceIndex)}):properties}function CfnClusterManagedScalingPolicyPropertyFromCloudFormation(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("computeLimits","ComputeLimits",properties.ComputeLimits!=null?CfnClusterComputeLimitsPropertyFromCloudFormation(properties.ComputeLimits):void 0),ret.addPropertyResult("scalingStrategy","ScalingStrategy",properties.ScalingStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.ScalingStrategy):void 0),ret.addPropertyResult("utilizationPerformanceIndex","UtilizationPerformanceIndex",properties.UtilizationPerformanceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.UtilizationPerformanceIndex):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterKeyValuePropertyValidator(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("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KeyValueProperty"')}function convertCfnClusterKeyValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterKeyValuePropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnClusterKeyValuePropertyFromCloudFormation(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("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterHadoopJarStepConfigPropertyValidator(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("jar",cdk().requiredValidator)(properties.jar)),errors.collect(cdk().propertyValidator("jar",cdk().validateString)(properties.jar)),errors.collect(cdk().propertyValidator("mainClass",cdk().validateString)(properties.mainClass)),errors.collect(cdk().propertyValidator("stepProperties",cdk().listValidator(CfnClusterKeyValuePropertyValidator))(properties.stepProperties)),errors.wrap('supplied properties not correct for "HadoopJarStepConfigProperty"')}function convertCfnClusterHadoopJarStepConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterHadoopJarStepConfigPropertyValidator(properties).assertSuccess(),{Args:cdk().listMapper(cdk().stringToCloudFormation)(properties.args),Jar:cdk().stringToCloudFormation(properties.jar),MainClass:cdk().stringToCloudFormation(properties.mainClass),StepProperties:cdk().listMapper(convertCfnClusterKeyValuePropertyToCloudFormation)(properties.stepProperties)}):properties}function CfnClusterHadoopJarStepConfigPropertyFromCloudFormation(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("jar","Jar",properties.Jar!=null?cfn_parse().FromCloudFormation.getString(properties.Jar):void 0),ret.addPropertyResult("mainClass","MainClass",properties.MainClass!=null?cfn_parse().FromCloudFormation.getString(properties.MainClass):void 0),ret.addPropertyResult("stepProperties","StepProperties",properties.StepProperties!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterKeyValuePropertyFromCloudFormation)(properties.StepProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterStepConfigPropertyValidator(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("actionOnFailure",cdk().validateString)(properties.actionOnFailure)),errors.collect(cdk().propertyValidator("hadoopJarStep",cdk().requiredValidator)(properties.hadoopJarStep)),errors.collect(cdk().propertyValidator("hadoopJarStep",CfnClusterHadoopJarStepConfigPropertyValidator)(properties.hadoopJarStep)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "StepConfigProperty"')}function convertCfnClusterStepConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterStepConfigPropertyValidator(properties).assertSuccess(),{ActionOnFailure:cdk().stringToCloudFormation(properties.actionOnFailure),HadoopJarStep:convertCfnClusterHadoopJarStepConfigPropertyToCloudFormation(properties.hadoopJarStep),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnClusterStepConfigPropertyFromCloudFormation(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("actionOnFailure","ActionOnFailure",properties.ActionOnFailure!=null?cfn_parse().FromCloudFormation.getString(properties.ActionOnFailure):void 0),ret.addPropertyResult("hadoopJarStep","HadoopJarStep",properties.HadoopJarStep!=null?CfnClusterHadoopJarStepConfigPropertyFromCloudFormation(properties.HadoopJarStep):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterPlacementGroupConfigPropertyValidator(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("instanceRole",cdk().requiredValidator)(properties.instanceRole)),errors.collect(cdk().propertyValidator("instanceRole",cdk().validateString)(properties.instanceRole)),errors.collect(cdk().propertyValidator("placementStrategy",cdk().validateString)(properties.placementStrategy)),errors.wrap('supplied properties not correct for "PlacementGroupConfigProperty"')}function convertCfnClusterPlacementGroupConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPlacementGroupConfigPropertyValidator(properties).assertSuccess(),{InstanceRole:cdk().stringToCloudFormation(properties.instanceRole),PlacementStrategy:cdk().stringToCloudFormation(properties.placementStrategy)}):properties}function CfnClusterPlacementGroupConfigPropertyFromCloudFormation(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("instanceRole","InstanceRole",properties.InstanceRole!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceRole):void 0),ret.addPropertyResult("placementStrategy","PlacementStrategy",properties.PlacementStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterPropsValidator(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().validateObject)(properties.additionalInfo)),errors.collect(cdk().propertyValidator("applications",cdk().listValidator(CfnClusterApplicationPropertyValidator))(properties.applications)),errors.collect(cdk().propertyValidator("autoScalingRole",cdk().validateString)(properties.autoScalingRole)),errors.collect(cdk().propertyValidator("autoTerminationPolicy",CfnClusterAutoTerminationPolicyPropertyValidator)(properties.autoTerminationPolicy)),errors.collect(cdk().propertyValidator("bootstrapActions",cdk().listValidator(CfnClusterBootstrapActionConfigPropertyValidator))(properties.bootstrapActions)),errors.collect(cdk().propertyValidator("configurations",cdk().listValidator(CfnClusterConfigurationPropertyValidator))(properties.configurations)),errors.collect(cdk().propertyValidator("customAmiId",cdk().validateString)(properties.customAmiId)),errors.collect(cdk().propertyValidator("ebsRootVolumeIops",cdk().validateNumber)(properties.ebsRootVolumeIops)),errors.collect(cdk().propertyValidator("ebsRootVolumeSize",cdk().validateNumber)(properties.ebsRootVolumeSize)),errors.collect(cdk().propertyValidator("ebsRootVolumeThroughput",cdk().validateNumber)(properties.ebsRootVolumeThroughput)),errors.collect(cdk().propertyValidator("instances",cdk().requiredValidator)(properties.instances)),errors.collect(cdk().propertyValidator("instances",CfnClusterJobFlowInstancesConfigPropertyValidator)(properties.instances)),errors.collect(cdk().propertyValidator("jobFlowRole",cdk().requiredValidator)(properties.jobFlowRole)),errors.collect(cdk().propertyValidator("jobFlowRole",cdk().validateString)(properties.jobFlowRole)),errors.collect(cdk().propertyValidator("kerberosAttributes",CfnClusterKerberosAttributesPropertyValidator)(properties.kerberosAttributes)),errors.collect(cdk().propertyValidator("logEncryptionKmsKeyId",cdk().validateString)(properties.logEncryptionKmsKeyId)),errors.collect(cdk().propertyValidator("logUri",cdk().validateString)(properties.logUri)),errors.collect(cdk().propertyValidator("managedScalingPolicy",CfnClusterManagedScalingPolicyPropertyValidator)(properties.managedScalingPolicy)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("osReleaseLabel",cdk().validateString)(properties.osReleaseLabel)),errors.collect(cdk().propertyValidator("placementGroupConfigs",cdk().listValidator(CfnClusterPlacementGroupConfigPropertyValidator))(properties.placementGroupConfigs)),errors.collect(cdk().propertyValidator("releaseLabel",cdk().validateString)(properties.releaseLabel)),errors.collect(cdk().propertyValidator("scaleDownBehavior",cdk().validateString)(properties.scaleDownBehavior)),errors.collect(cdk().propertyValidator("securityConfiguration",cdk().validateString)(properties.securityConfiguration)),errors.collect(cdk().propertyValidator("serviceRole",cdk().requiredValidator)(properties.serviceRole)),errors.collect(cdk().propertyValidator("serviceRole",cdk().validateString)(properties.serviceRole)),errors.collect(cdk().propertyValidator("stepConcurrencyLevel",cdk().validateNumber)(properties.stepConcurrencyLevel)),errors.collect(cdk().propertyValidator("steps",cdk().listValidator(CfnClusterStepConfigPropertyValidator))(properties.steps)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("visibleToAllUsers",cdk().validateBoolean)(properties.visibleToAllUsers)),errors.wrap('supplied properties not correct for "CfnClusterProps"')}function convertCfnClusterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPropsValidator(properties).assertSuccess(),{AdditionalInfo:cdk().objectToCloudFormation(properties.additionalInfo),Applications:cdk().listMapper(convertCfnClusterApplicationPropertyToCloudFormation)(properties.applications),AutoScalingRole:cdk().stringToCloudFormation(properties.autoScalingRole),AutoTerminationPolicy:convertCfnClusterAutoTerminationPolicyPropertyToCloudFormation(properties.autoTerminationPolicy),BootstrapActions:cdk().listMapper(convertCfnClusterBootstrapActionConfigPropertyToCloudFormation)(properties.bootstrapActions),Configurations:cdk().listMapper(convertCfnClusterConfigurationPropertyToCloudFormation)(properties.configurations),CustomAmiId:cdk().stringToCloudFormation(properties.customAmiId),EbsRootVolumeIops:cdk().numberToCloudFormation(properties.ebsRootVolumeIops),EbsRootVolumeSize:cdk().numberToCloudFormation(properties.ebsRootVolumeSize),EbsRootVolumeThroughput:cdk().numberToCloudFormation(properties.ebsRootVolumeThroughput),Instances:convertCfnClusterJobFlowInstancesConfigPropertyToCloudFormation(properties.instances),JobFlowRole:cdk().stringToCloudFormation(properties.jobFlowRole),KerberosAttributes:convertCfnClusterKerberosAttributesPropertyToCloudFormation(properties.kerberosAttributes),LogEncryptionKmsKeyId:cdk().stringToCloudFormation(properties.logEncryptionKmsKeyId),LogUri:cdk().stringToCloudFormation(properties.logUri),ManagedScalingPolicy:convertCfnClusterManagedScalingPolicyPropertyToCloudFormation(properties.managedScalingPolicy),Name:cdk().stringToCloudFormation(properties.name),OSReleaseLabel:cdk().stringToCloudFormation(properties.osReleaseLabel),PlacementGroupConfigs:cdk().listMapper(convertCfnClusterPlacementGroupConfigPropertyToCloudFormation)(properties.placementGroupConfigs),ReleaseLabel:cdk().stringToCloudFormation(properties.releaseLabel),ScaleDownBehavior:cdk().stringToCloudFormation(properties.scaleDownBehavior),SecurityConfiguration:cdk().stringToCloudFormation(properties.securityConfiguration),ServiceRole:cdk().stringToCloudFormation(properties.serviceRole),StepConcurrencyLevel:cdk().numberToCloudFormation(properties.stepConcurrencyLevel),Steps:cdk().listMapper(convertCfnClusterStepConfigPropertyToCloudFormation)(properties.steps),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VisibleToAllUsers:cdk().booleanToCloudFormation(properties.visibleToAllUsers)}):properties}function CfnClusterPropsFromCloudFormation(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.getAny(properties.AdditionalInfo):void 0),ret.addPropertyResult("applications","Applications",properties.Applications!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterApplicationPropertyFromCloudFormation)(properties.Applications):void 0),ret.addPropertyResult("autoScalingRole","AutoScalingRole",properties.AutoScalingRole!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingRole):void 0),ret.addPropertyResult("autoTerminationPolicy","AutoTerminationPolicy",properties.AutoTerminationPolicy!=null?CfnClusterAutoTerminationPolicyPropertyFromCloudFormation(properties.AutoTerminationPolicy):void 0),ret.addPropertyResult("bootstrapActions","BootstrapActions",properties.BootstrapActions!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterBootstrapActionConfigPropertyFromCloudFormation)(properties.BootstrapActions):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("ebsRootVolumeIops","EbsRootVolumeIops",properties.EbsRootVolumeIops!=null?cfn_parse().FromCloudFormation.getNumber(properties.EbsRootVolumeIops):void 0),ret.addPropertyResult("ebsRootVolumeSize","EbsRootVolumeSize",properties.EbsRootVolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.EbsRootVolumeSize):void 0),ret.addPropertyResult("ebsRootVolumeThroughput","EbsRootVolumeThroughput",properties.EbsRootVolumeThroughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.EbsRootVolumeThroughput):void 0),ret.addPropertyResult("instances","Instances",properties.Instances!=null?CfnClusterJobFlowInstancesConfigPropertyFromCloudFormation(properties.Instances):void 0),ret.addPropertyResult("jobFlowRole","JobFlowRole",properties.JobFlowRole!=null?cfn_parse().FromCloudFormation.getString(properties.JobFlowRole):void 0),ret.addPropertyResult("kerberosAttributes","KerberosAttributes",properties.KerberosAttributes!=null?CfnClusterKerberosAttributesPropertyFromCloudFormation(properties.KerberosAttributes):void 0),ret.addPropertyResult("logEncryptionKmsKeyId","LogEncryptionKmsKeyId",properties.LogEncryptionKmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.LogEncryptionKmsKeyId):void 0),ret.addPropertyResult("logUri","LogUri",properties.LogUri!=null?cfn_parse().FromCloudFormation.getString(properties.LogUri):void 0),ret.addPropertyResult("managedScalingPolicy","ManagedScalingPolicy",properties.ManagedScalingPolicy!=null?CfnClusterManagedScalingPolicyPropertyFromCloudFormation(properties.ManagedScalingPolicy):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("osReleaseLabel","OSReleaseLabel",properties.OSReleaseLabel!=null?cfn_parse().FromCloudFormation.getString(properties.OSReleaseLabel):void 0),ret.addPropertyResult("placementGroupConfigs","PlacementGroupConfigs",properties.PlacementGroupConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterPlacementGroupConfigPropertyFromCloudFormation)(properties.PlacementGroupConfigs):void 0),ret.addPropertyResult("releaseLabel","ReleaseLabel",properties.ReleaseLabel!=null?cfn_parse().FromCloudFormation.getString(properties.ReleaseLabel):void 0),ret.addPropertyResult("scaleDownBehavior","ScaleDownBehavior",properties.ScaleDownBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.ScaleDownBehavior):void 0),ret.addPropertyResult("securityConfiguration","SecurityConfiguration",properties.SecurityConfiguration!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityConfiguration):void 0),ret.addPropertyResult("serviceRole","ServiceRole",properties.ServiceRole!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceRole):void 0),ret.addPropertyResult("stepConcurrencyLevel","StepConcurrencyLevel",properties.StepConcurrencyLevel!=null?cfn_parse().FromCloudFormation.getNumber(properties.StepConcurrencyLevel):void 0),ret.addPropertyResult("steps","Steps",properties.Steps!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterStepConfigPropertyFromCloudFormation)(properties.Steps):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("visibleToAllUsers","VisibleToAllUsers",properties.VisibleToAllUsers!=null?cfn_parse().FromCloudFormation.getBoolean(properties.VisibleToAllUsers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstanceFleetConfig extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnInstanceFleetConfig",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::InstanceFleetConfig";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstanceFleetConfigPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInstanceFleetConfig(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 isCfnInstanceFleetConfig(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInstanceFleetConfig.CFN_RESOURCE_TYPE_NAME}_clusterId;_instanceFleetType;_instanceTypeConfigs;_launchSpecifications;_name;_resizeSpecifications;_targetOnDemandCapacity;_targetSpotCapacity;cfnPropertyNames={clusterId:"ClusterId",instanceFleetType:"InstanceFleetType",instanceTypeConfigs:"InstanceTypeConfigs",launchSpecifications:"LaunchSpecifications",name:"Name",resizeSpecifications:"ResizeSpecifications",targetOnDemandCapacity:"TargetOnDemandCapacity",targetSpotCapacity:"TargetSpotCapacity"};constructor(scope,id,props){super(scope,id,{type:CfnInstanceFleetConfig.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnInstanceFleetConfigProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstanceFleetConfig),error}cdk().requireProperty(props,"clusterId",this),cdk().requireProperty(props,"instanceFleetType",this),this._clusterId=props.clusterId,this._instanceFleetType=props.instanceFleetType,this._instanceTypeConfigs=props.instanceTypeConfigs,this._launchSpecifications=props.launchSpecifications,this._name=props.name,this._resizeSpecifications=props.resizeSpecifications,this._targetOnDemandCapacity=props.targetOnDemandCapacity,this._targetSpotCapacity=props.targetSpotCapacity}get instanceFleetConfigRef(){return{instanceFleetConfigId:this.ref}}get clusterId(){return this._clusterId}set clusterId(value){cdk().traceProperty(this.node,"ClusterId"),this._clusterId=value}get instanceFleetType(){return this._instanceFleetType}set instanceFleetType(value){cdk().traceProperty(this.node,"InstanceFleetType"),this._instanceFleetType=value}get instanceTypeConfigs(){return this._instanceTypeConfigs}set instanceTypeConfigs(value){cdk().traceProperty(this.node,"InstanceTypeConfigs"),this._instanceTypeConfigs=value}get launchSpecifications(){return this._launchSpecifications}set launchSpecifications(value){cdk().traceProperty(this.node,"LaunchSpecifications"),this._launchSpecifications=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get resizeSpecifications(){return this._resizeSpecifications}set resizeSpecifications(value){cdk().traceProperty(this.node,"ResizeSpecifications"),this._resizeSpecifications=value}get targetOnDemandCapacity(){return this._targetOnDemandCapacity}set targetOnDemandCapacity(value){cdk().traceProperty(this.node,"TargetOnDemandCapacity"),this._targetOnDemandCapacity=value}get targetSpotCapacity(){return this._targetSpotCapacity}set targetSpotCapacity(value){cdk().traceProperty(this.node,"TargetSpotCapacity"),this._targetSpotCapacity=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{clusterId:this._clusterId,instanceFleetType:this._instanceFleetType,instanceTypeConfigs:this._instanceTypeConfigs,launchSpecifications:this._launchSpecifications,name:this._name,resizeSpecifications:this._resizeSpecifications,targetOnDemandCapacity:this._targetOnDemandCapacity,targetSpotCapacity:this._targetSpotCapacity}}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",CfnInstanceFleetConfig.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInstanceFleetConfigPropsToCloudFormation(props)}}exports.CfnInstanceFleetConfig=CfnInstanceFleetConfig;function CfnInstanceFleetConfigConfigurationPropertyValidator(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(CfnInstanceFleetConfigConfigurationPropertyValidator))(properties.configurations)),errors.wrap('supplied properties not correct for "ConfigurationProperty"')}function convertCfnInstanceFleetConfigConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigConfigurationPropertyValidator(properties).assertSuccess(),{Classification:cdk().stringToCloudFormation(properties.classification),ConfigurationProperties:cdk().hashMapper(cdk().stringToCloudFormation)(properties.configurationProperties),Configurations:cdk().listMapper(convertCfnInstanceFleetConfigConfigurationPropertyToCloudFormation)(properties.configurations)}):properties}function CfnInstanceFleetConfigConfigurationPropertyFromCloudFormation(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(CfnInstanceFleetConfigConfigurationPropertyFromCloudFormation)(properties.Configurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigVolumeSpecificationPropertyValidator(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 convertCfnInstanceFleetConfigVolumeSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigVolumeSpecificationPropertyValidator(properties).assertSuccess(),{Iops:cdk().numberToCloudFormation(properties.iops),SizeInGB:cdk().numberToCloudFormation(properties.sizeInGb),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnInstanceFleetConfigVolumeSpecificationPropertyFromCloudFormation(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 CfnInstanceFleetConfigEbsBlockDeviceConfigPropertyValidator(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",CfnInstanceFleetConfigVolumeSpecificationPropertyValidator)(properties.volumeSpecification)),errors.collect(cdk().propertyValidator("volumesPerInstance",cdk().validateNumber)(properties.volumesPerInstance)),errors.wrap('supplied properties not correct for "EbsBlockDeviceConfigProperty"')}function convertCfnInstanceFleetConfigEbsBlockDeviceConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigEbsBlockDeviceConfigPropertyValidator(properties).assertSuccess(),{VolumeSpecification:convertCfnInstanceFleetConfigVolumeSpecificationPropertyToCloudFormation(properties.volumeSpecification),VolumesPerInstance:cdk().numberToCloudFormation(properties.volumesPerInstance)}):properties}function CfnInstanceFleetConfigEbsBlockDeviceConfigPropertyFromCloudFormation(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?CfnInstanceFleetConfigVolumeSpecificationPropertyFromCloudFormation(properties.VolumeSpecification):void 0),ret.addPropertyResult("volumesPerInstance","VolumesPerInstance",properties.VolumesPerInstance!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumesPerInstance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigEbsConfigurationPropertyValidator(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(CfnInstanceFleetConfigEbsBlockDeviceConfigPropertyValidator))(properties.ebsBlockDeviceConfigs)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.wrap('supplied properties not correct for "EbsConfigurationProperty"')}function convertCfnInstanceFleetConfigEbsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigEbsConfigurationPropertyValidator(properties).assertSuccess(),{EbsBlockDeviceConfigs:cdk().listMapper(convertCfnInstanceFleetConfigEbsBlockDeviceConfigPropertyToCloudFormation)(properties.ebsBlockDeviceConfigs),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized)}):properties}function CfnInstanceFleetConfigEbsConfigurationPropertyFromCloudFormation(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(CfnInstanceFleetConfigEbsBlockDeviceConfigPropertyFromCloudFormation)(properties.EbsBlockDeviceConfigs):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigInstanceTypeConfigPropertyValidator(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(CfnInstanceFleetConfigConfigurationPropertyValidator))(properties.configurations)),errors.collect(cdk().propertyValidator("customAmiId",cdk().validateString)(properties.customAmiId)),errors.collect(cdk().propertyValidator("ebsConfiguration",CfnInstanceFleetConfigEbsConfigurationPropertyValidator)(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 convertCfnInstanceFleetConfigInstanceTypeConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigInstanceTypeConfigPropertyValidator(properties).assertSuccess(),{BidPrice:cdk().stringToCloudFormation(properties.bidPrice),BidPriceAsPercentageOfOnDemandPrice:cdk().numberToCloudFormation(properties.bidPriceAsPercentageOfOnDemandPrice),Configurations:cdk().listMapper(convertCfnInstanceFleetConfigConfigurationPropertyToCloudFormation)(properties.configurations),CustomAmiId:cdk().stringToCloudFormation(properties.customAmiId),EbsConfiguration:convertCfnInstanceFleetConfigEbsConfigurationPropertyToCloudFormation(properties.ebsConfiguration),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Priority:cdk().numberToCloudFormation(properties.priority),WeightedCapacity:cdk().numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnInstanceFleetConfigInstanceTypeConfigPropertyFromCloudFormation(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(CfnInstanceFleetConfigConfigurationPropertyFromCloudFormation)(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?CfnInstanceFleetConfigEbsConfigurationPropertyFromCloudFormation(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 CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyValidator(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 convertCfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk().stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationResourceGroupArn:cdk().stringToCloudFormation(properties.capacityReservationResourceGroupArn),UsageStrategy:cdk().stringToCloudFormation(properties.usageStrategy)}):properties}function CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyFromCloudFormation(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 CfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyValidator(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",CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyValidator)(properties.capacityReservationOptions)),errors.wrap('supplied properties not correct for "OnDemandProvisioningSpecificationProperty"')}function convertCfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:convertCfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties.capacityReservationOptions)}):properties}function CfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyFromCloudFormation(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?CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigSpotProvisioningSpecificationPropertyValidator(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 convertCfnInstanceFleetConfigSpotProvisioningSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigSpotProvisioningSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),BlockDurationMinutes:cdk().numberToCloudFormation(properties.blockDurationMinutes),TimeoutAction:cdk().stringToCloudFormation(properties.timeoutAction),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnInstanceFleetConfigSpotProvisioningSpecificationPropertyFromCloudFormation(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 CfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyValidator(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",CfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyValidator)(properties.onDemandSpecification)),errors.collect(cdk().propertyValidator("spotSpecification",CfnInstanceFleetConfigSpotProvisioningSpecificationPropertyValidator)(properties.spotSpecification)),errors.wrap('supplied properties not correct for "InstanceFleetProvisioningSpecificationsProperty"')}function convertCfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyValidator(properties).assertSuccess(),{OnDemandSpecification:convertCfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyToCloudFormation(properties.onDemandSpecification),SpotSpecification:convertCfnInstanceFleetConfigSpotProvisioningSpecificationPropertyToCloudFormation(properties.spotSpecification)}):properties}function CfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyFromCloudFormation(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?CfnInstanceFleetConfigOnDemandProvisioningSpecificationPropertyFromCloudFormation(properties.OnDemandSpecification):void 0),ret.addPropertyResult("spotSpecification","SpotSpecification",properties.SpotSpecification!=null?CfnInstanceFleetConfigSpotProvisioningSpecificationPropertyFromCloudFormation(properties.SpotSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigOnDemandResizingSpecificationPropertyValidator(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",CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyValidator)(properties.capacityReservationOptions)),errors.collect(cdk().propertyValidator("timeoutDurationMinutes",cdk().validateNumber)(properties.timeoutDurationMinutes)),errors.wrap('supplied properties not correct for "OnDemandResizingSpecificationProperty"')}function convertCfnInstanceFleetConfigOnDemandResizingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigOnDemandResizingSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:convertCfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyToCloudFormation(properties.capacityReservationOptions),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnInstanceFleetConfigOnDemandResizingSpecificationPropertyFromCloudFormation(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?CfnInstanceFleetConfigOnDemandCapacityReservationOptionsPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addPropertyResult("timeoutDurationMinutes","TimeoutDurationMinutes",properties.TimeoutDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutDurationMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigSpotResizingSpecificationPropertyValidator(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 convertCfnInstanceFleetConfigSpotResizingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigSpotResizingSpecificationPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),TimeoutDurationMinutes:cdk().numberToCloudFormation(properties.timeoutDurationMinutes)}):properties}function CfnInstanceFleetConfigSpotResizingSpecificationPropertyFromCloudFormation(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 CfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyValidator(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",CfnInstanceFleetConfigOnDemandResizingSpecificationPropertyValidator)(properties.onDemandResizeSpecification)),errors.collect(cdk().propertyValidator("spotResizeSpecification",CfnInstanceFleetConfigSpotResizingSpecificationPropertyValidator)(properties.spotResizeSpecification)),errors.wrap('supplied properties not correct for "InstanceFleetResizingSpecificationsProperty"')}function convertCfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyValidator(properties).assertSuccess(),{OnDemandResizeSpecification:convertCfnInstanceFleetConfigOnDemandResizingSpecificationPropertyToCloudFormation(properties.onDemandResizeSpecification),SpotResizeSpecification:convertCfnInstanceFleetConfigSpotResizingSpecificationPropertyToCloudFormation(properties.spotResizeSpecification)}):properties}function CfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyFromCloudFormation(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?CfnInstanceFleetConfigOnDemandResizingSpecificationPropertyFromCloudFormation(properties.OnDemandResizeSpecification):void 0),ret.addPropertyResult("spotResizeSpecification","SpotResizeSpecification",properties.SpotResizeSpecification!=null?CfnInstanceFleetConfigSpotResizingSpecificationPropertyFromCloudFormation(properties.SpotResizeSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceFleetConfigPropsValidator(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("clusterId",cdk().requiredValidator)(properties.clusterId)),errors.collect(cdk().propertyValidator("clusterId",cdk().validateString)(properties.clusterId)),errors.collect(cdk().propertyValidator("instanceFleetType",cdk().requiredValidator)(properties.instanceFleetType)),errors.collect(cdk().propertyValidator("instanceFleetType",cdk().validateString)(properties.instanceFleetType)),errors.collect(cdk().propertyValidator("instanceTypeConfigs",cdk().listValidator(CfnInstanceFleetConfigInstanceTypeConfigPropertyValidator))(properties.instanceTypeConfigs)),errors.collect(cdk().propertyValidator("launchSpecifications",CfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyValidator)(properties.launchSpecifications)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("resizeSpecifications",CfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyValidator)(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 "CfnInstanceFleetConfigProps"')}function convertCfnInstanceFleetConfigPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceFleetConfigPropsValidator(properties).assertSuccess(),{ClusterId:cdk().stringToCloudFormation(properties.clusterId),InstanceFleetType:cdk().stringToCloudFormation(properties.instanceFleetType),InstanceTypeConfigs:cdk().listMapper(convertCfnInstanceFleetConfigInstanceTypeConfigPropertyToCloudFormation)(properties.instanceTypeConfigs),LaunchSpecifications:convertCfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyToCloudFormation(properties.launchSpecifications),Name:cdk().stringToCloudFormation(properties.name),ResizeSpecifications:convertCfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyToCloudFormation(properties.resizeSpecifications),TargetOnDemandCapacity:cdk().numberToCloudFormation(properties.targetOnDemandCapacity),TargetSpotCapacity:cdk().numberToCloudFormation(properties.targetSpotCapacity)}):properties}function CfnInstanceFleetConfigPropsFromCloudFormation(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("clusterId","ClusterId",properties.ClusterId!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterId):void 0),ret.addPropertyResult("instanceFleetType","InstanceFleetType",properties.InstanceFleetType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFleetType):void 0),ret.addPropertyResult("instanceTypeConfigs","InstanceTypeConfigs",properties.InstanceTypeConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceFleetConfigInstanceTypeConfigPropertyFromCloudFormation)(properties.InstanceTypeConfigs):void 0),ret.addPropertyResult("launchSpecifications","LaunchSpecifications",properties.LaunchSpecifications!=null?CfnInstanceFleetConfigInstanceFleetProvisioningSpecificationsPropertyFromCloudFormation(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?CfnInstanceFleetConfigInstanceFleetResizingSpecificationsPropertyFromCloudFormation(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}class CfnInstanceGroupConfig extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnInstanceGroupConfig",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::InstanceGroupConfig";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstanceGroupConfigPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInstanceGroupConfig(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 isCfnInstanceGroupConfig(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInstanceGroupConfig.CFN_RESOURCE_TYPE_NAME}_autoScalingPolicy;_bidPrice;_configurations;_customAmiId;_ebsConfiguration;_instanceCount;_instanceRole;_instanceType;_jobFlowId;_market;_name;cfnPropertyNames={autoScalingPolicy:"AutoScalingPolicy",bidPrice:"BidPrice",configurations:"Configurations",customAmiId:"CustomAmiId",ebsConfiguration:"EbsConfiguration",instanceCount:"InstanceCount",instanceRole:"InstanceRole",instanceType:"InstanceType",jobFlowId:"JobFlowId",market:"Market",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnInstanceGroupConfig.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnInstanceGroupConfigProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstanceGroupConfig),error}cdk().requireProperty(props,"instanceCount",this),cdk().requireProperty(props,"instanceRole",this),cdk().requireProperty(props,"instanceType",this),cdk().requireProperty(props,"jobFlowId",this),this._autoScalingPolicy=props.autoScalingPolicy,this._bidPrice=props.bidPrice,this._configurations=props.configurations,this._customAmiId=props.customAmiId,this._ebsConfiguration=props.ebsConfiguration,this._instanceCount=props.instanceCount,this._instanceRole=props.instanceRole,this._instanceType=props.instanceType,this._jobFlowId=props.jobFlowId,this._market=props.market,this._name=props.name}get instanceGroupConfigRef(){return{instanceGroupConfigId:this.ref}}get autoScalingPolicy(){return this._autoScalingPolicy}set autoScalingPolicy(value){cdk().traceProperty(this.node,"AutoScalingPolicy"),this._autoScalingPolicy=value}get bidPrice(){return this._bidPrice}set bidPrice(value){cdk().traceProperty(this.node,"BidPrice"),this._bidPrice=value}get configurations(){return this._configurations}set configurations(value){cdk().traceProperty(this.node,"Configurations"),this._configurations=value}get customAmiId(){return this._customAmiId}set customAmiId(value){cdk().traceProperty(this.node,"CustomAmiId"),this._customAmiId=value}get ebsConfiguration(){return this._ebsConfiguration}set ebsConfiguration(value){cdk().traceProperty(this.node,"EbsConfiguration"),this._ebsConfiguration=value}get instanceCount(){return this._instanceCount}set instanceCount(value){cdk().traceProperty(this.node,"InstanceCount"),this._instanceCount=value}get instanceRole(){return this._instanceRole}set instanceRole(value){cdk().traceProperty(this.node,"InstanceRole"),this._instanceRole=value}get instanceType(){return this._instanceType}set instanceType(value){cdk().traceProperty(this.node,"InstanceType"),this._instanceType=value}get jobFlowId(){return this._jobFlowId}set jobFlowId(value){cdk().traceProperty(this.node,"JobFlowId"),this._jobFlowId=value}get market(){return this._market}set market(value){cdk().traceProperty(this.node,"Market"),this._market=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoScalingPolicy:this._autoScalingPolicy,bidPrice:this._bidPrice,configurations:this._configurations,customAmiId:this._customAmiId,ebsConfiguration:this._ebsConfiguration,instanceCount:this._instanceCount,instanceRole:this._instanceRole,instanceType:this._instanceType,jobFlowId:this._jobFlowId,market:this._market,name:this._name}}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",CfnInstanceGroupConfig.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInstanceGroupConfigPropsToCloudFormation(props)}}exports.CfnInstanceGroupConfig=CfnInstanceGroupConfig;function CfnInstanceGroupConfigScalingConstraintsPropertyValidator(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 convertCfnInstanceGroupConfigScalingConstraintsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigScalingConstraintsPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk().numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk().numberToCloudFormation(properties.minCapacity)}):properties}function CfnInstanceGroupConfigScalingConstraintsPropertyFromCloudFormation(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 CfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyValidator(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 convertCfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{AdjustmentType:cdk().stringToCloudFormation(properties.adjustmentType),CoolDown:cdk().numberToCloudFormation(properties.coolDown),ScalingAdjustment:cdk().numberToCloudFormation(properties.scalingAdjustment)}):properties}function CfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyFromCloudFormation(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!=null?cfn_parse().FromCloudFormation.getString(properties.AdjustmentType):void 0),ret.addPropertyResult("coolDown","CoolDown",properties.CoolDown!=null?cfn_parse().FromCloudFormation.getNumber(properties.CoolDown):void 0),ret.addPropertyResult("scalingAdjustment","ScalingAdjustment",properties.ScalingAdjustment!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScalingAdjustment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigScalingActionPropertyValidator(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("market",cdk().validateString)(properties.market)),errors.collect(cdk().propertyValidator("simpleScalingPolicyConfiguration",cdk().requiredValidator)(properties.simpleScalingPolicyConfiguration)),errors.collect(cdk().propertyValidator("simpleScalingPolicyConfiguration",CfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyValidator)(properties.simpleScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "ScalingActionProperty"')}function convertCfnInstanceGroupConfigScalingActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigScalingActionPropertyValidator(properties).assertSuccess(),{Market:cdk().stringToCloudFormation(properties.market),SimpleScalingPolicyConfiguration:convertCfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyToCloudFormation(properties.simpleScalingPolicyConfiguration)}):properties}function CfnInstanceGroupConfigScalingActionPropertyFromCloudFormation(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("market","Market",properties.Market!=null?cfn_parse().FromCloudFormation.getString(properties.Market):void 0),ret.addPropertyResult("simpleScalingPolicyConfiguration","SimpleScalingPolicyConfiguration",properties.SimpleScalingPolicyConfiguration!=null?CfnInstanceGroupConfigSimpleScalingPolicyConfigurationPropertyFromCloudFormation(properties.SimpleScalingPolicyConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigMetricDimensionPropertyValidator(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("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "MetricDimensionProperty"')}function convertCfnInstanceGroupConfigMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigMetricDimensionPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnInstanceGroupConfigMetricDimensionPropertyFromCloudFormation(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("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyValidator(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("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnInstanceGroupConfigMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("evaluationPeriods",cdk().validateNumber)(properties.evaluationPeriods)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("period",cdk().requiredValidator)(properties.period)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.collect(cdk().propertyValidator("threshold",cdk().requiredValidator)(properties.threshold)),errors.collect(cdk().propertyValidator("threshold",cdk().validateNumber)(properties.threshold)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "CloudWatchAlarmDefinitionProperty"')}function convertCfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),Dimensions:cdk().listMapper(convertCfnInstanceGroupConfigMetricDimensionPropertyToCloudFormation)(properties.dimensions),EvaluationPeriods:cdk().numberToCloudFormation(properties.evaluationPeriods),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace),Period:cdk().numberToCloudFormation(properties.period),Statistic:cdk().stringToCloudFormation(properties.statistic),Threshold:cdk().numberToCloudFormation(properties.threshold),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyFromCloudFormation(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("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceGroupConfigMetricDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("evaluationPeriods","EvaluationPeriods",properties.EvaluationPeriods!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationPeriods):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addPropertyResult("threshold","Threshold",properties.Threshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.Threshold):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigScalingTriggerPropertyValidator(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("cloudWatchAlarmDefinition",cdk().requiredValidator)(properties.cloudWatchAlarmDefinition)),errors.collect(cdk().propertyValidator("cloudWatchAlarmDefinition",CfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyValidator)(properties.cloudWatchAlarmDefinition)),errors.wrap('supplied properties not correct for "ScalingTriggerProperty"')}function convertCfnInstanceGroupConfigScalingTriggerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigScalingTriggerPropertyValidator(properties).assertSuccess(),{CloudWatchAlarmDefinition:convertCfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyToCloudFormation(properties.cloudWatchAlarmDefinition)}):properties}function CfnInstanceGroupConfigScalingTriggerPropertyFromCloudFormation(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("cloudWatchAlarmDefinition","CloudWatchAlarmDefinition",properties.CloudWatchAlarmDefinition!=null?CfnInstanceGroupConfigCloudWatchAlarmDefinitionPropertyFromCloudFormation(properties.CloudWatchAlarmDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigScalingRulePropertyValidator(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",CfnInstanceGroupConfigScalingActionPropertyValidator)(properties.action)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("trigger",cdk().requiredValidator)(properties.trigger)),errors.collect(cdk().propertyValidator("trigger",CfnInstanceGroupConfigScalingTriggerPropertyValidator)(properties.trigger)),errors.wrap('supplied properties not correct for "ScalingRuleProperty"')}function convertCfnInstanceGroupConfigScalingRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigScalingRulePropertyValidator(properties).assertSuccess(),{Action:convertCfnInstanceGroupConfigScalingActionPropertyToCloudFormation(properties.action),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),Trigger:convertCfnInstanceGroupConfigScalingTriggerPropertyToCloudFormation(properties.trigger)}):properties}function CfnInstanceGroupConfigScalingRulePropertyFromCloudFormation(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?CfnInstanceGroupConfigScalingActionPropertyFromCloudFormation(properties.Action):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("trigger","Trigger",properties.Trigger!=null?CfnInstanceGroupConfigScalingTriggerPropertyFromCloudFormation(properties.Trigger):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigAutoScalingPolicyPropertyValidator(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("constraints",cdk().requiredValidator)(properties.constraints)),errors.collect(cdk().propertyValidator("constraints",CfnInstanceGroupConfigScalingConstraintsPropertyValidator)(properties.constraints)),errors.collect(cdk().propertyValidator("rules",cdk().requiredValidator)(properties.rules)),errors.collect(cdk().propertyValidator("rules",cdk().listValidator(CfnInstanceGroupConfigScalingRulePropertyValidator))(properties.rules)),errors.wrap('supplied properties not correct for "AutoScalingPolicyProperty"')}function convertCfnInstanceGroupConfigAutoScalingPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigAutoScalingPolicyPropertyValidator(properties).assertSuccess(),{Constraints:convertCfnInstanceGroupConfigScalingConstraintsPropertyToCloudFormation(properties.constraints),Rules:cdk().listMapper(convertCfnInstanceGroupConfigScalingRulePropertyToCloudFormation)(properties.rules)}):properties}function CfnInstanceGroupConfigAutoScalingPolicyPropertyFromCloudFormation(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("constraints","Constraints",properties.Constraints!=null?CfnInstanceGroupConfigScalingConstraintsPropertyFromCloudFormation(properties.Constraints):void 0),ret.addPropertyResult("rules","Rules",properties.Rules!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceGroupConfigScalingRulePropertyFromCloudFormation)(properties.Rules):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigConfigurationPropertyValidator(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(CfnInstanceGroupConfigConfigurationPropertyValidator))(properties.configurations)),errors.wrap('supplied properties not correct for "ConfigurationProperty"')}function convertCfnInstanceGroupConfigConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigConfigurationPropertyValidator(properties).assertSuccess(),{Classification:cdk().stringToCloudFormation(properties.classification),ConfigurationProperties:cdk().hashMapper(cdk().stringToCloudFormation)(properties.configurationProperties),Configurations:cdk().listMapper(convertCfnInstanceGroupConfigConfigurationPropertyToCloudFormation)(properties.configurations)}):properties}function CfnInstanceGroupConfigConfigurationPropertyFromCloudFormation(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(CfnInstanceGroupConfigConfigurationPropertyFromCloudFormation)(properties.Configurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigVolumeSpecificationPropertyValidator(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 convertCfnInstanceGroupConfigVolumeSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigVolumeSpecificationPropertyValidator(properties).assertSuccess(),{Iops:cdk().numberToCloudFormation(properties.iops),SizeInGB:cdk().numberToCloudFormation(properties.sizeInGb),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnInstanceGroupConfigVolumeSpecificationPropertyFromCloudFormation(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 CfnInstanceGroupConfigEbsBlockDeviceConfigPropertyValidator(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",CfnInstanceGroupConfigVolumeSpecificationPropertyValidator)(properties.volumeSpecification)),errors.collect(cdk().propertyValidator("volumesPerInstance",cdk().validateNumber)(properties.volumesPerInstance)),errors.wrap('supplied properties not correct for "EbsBlockDeviceConfigProperty"')}function convertCfnInstanceGroupConfigEbsBlockDeviceConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigEbsBlockDeviceConfigPropertyValidator(properties).assertSuccess(),{VolumeSpecification:convertCfnInstanceGroupConfigVolumeSpecificationPropertyToCloudFormation(properties.volumeSpecification),VolumesPerInstance:cdk().numberToCloudFormation(properties.volumesPerInstance)}):properties}function CfnInstanceGroupConfigEbsBlockDeviceConfigPropertyFromCloudFormation(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?CfnInstanceGroupConfigVolumeSpecificationPropertyFromCloudFormation(properties.VolumeSpecification):void 0),ret.addPropertyResult("volumesPerInstance","VolumesPerInstance",properties.VolumesPerInstance!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumesPerInstance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigEbsConfigurationPropertyValidator(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(CfnInstanceGroupConfigEbsBlockDeviceConfigPropertyValidator))(properties.ebsBlockDeviceConfigs)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.wrap('supplied properties not correct for "EbsConfigurationProperty"')}function convertCfnInstanceGroupConfigEbsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigEbsConfigurationPropertyValidator(properties).assertSuccess(),{EbsBlockDeviceConfigs:cdk().listMapper(convertCfnInstanceGroupConfigEbsBlockDeviceConfigPropertyToCloudFormation)(properties.ebsBlockDeviceConfigs),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized)}):properties}function CfnInstanceGroupConfigEbsConfigurationPropertyFromCloudFormation(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(CfnInstanceGroupConfigEbsBlockDeviceConfigPropertyFromCloudFormation)(properties.EbsBlockDeviceConfigs):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceGroupConfigPropsValidator(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("autoScalingPolicy",CfnInstanceGroupConfigAutoScalingPolicyPropertyValidator)(properties.autoScalingPolicy)),errors.collect(cdk().propertyValidator("bidPrice",cdk().validateString)(properties.bidPrice)),errors.collect(cdk().propertyValidator("configurations",cdk().listValidator(CfnInstanceGroupConfigConfigurationPropertyValidator))(properties.configurations)),errors.collect(cdk().propertyValidator("customAmiId",cdk().validateString)(properties.customAmiId)),errors.collect(cdk().propertyValidator("ebsConfiguration",CfnInstanceGroupConfigEbsConfigurationPropertyValidator)(properties.ebsConfiguration)),errors.collect(cdk().propertyValidator("instanceCount",cdk().requiredValidator)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceCount",cdk().validateNumber)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceRole",cdk().requiredValidator)(properties.instanceRole)),errors.collect(cdk().propertyValidator("instanceRole",cdk().validateString)(properties.instanceRole)),errors.collect(cdk().propertyValidator("instanceType",cdk().requiredValidator)(properties.instanceType)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("jobFlowId",cdk().requiredValidator)(properties.jobFlowId)),errors.collect(cdk().propertyValidator("jobFlowId",cdk().validateString)(properties.jobFlowId)),errors.collect(cdk().propertyValidator("market",cdk().validateString)(properties.market)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "CfnInstanceGroupConfigProps"')}function convertCfnInstanceGroupConfigPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceGroupConfigPropsValidator(properties).assertSuccess(),{AutoScalingPolicy:convertCfnInstanceGroupConfigAutoScalingPolicyPropertyToCloudFormation(properties.autoScalingPolicy),BidPrice:cdk().stringToCloudFormation(properties.bidPrice),Configurations:cdk().listMapper(convertCfnInstanceGroupConfigConfigurationPropertyToCloudFormation)(properties.configurations),CustomAmiId:cdk().stringToCloudFormation(properties.customAmiId),EbsConfiguration:convertCfnInstanceGroupConfigEbsConfigurationPropertyToCloudFormation(properties.ebsConfiguration),InstanceCount:cdk().numberToCloudFormation(properties.instanceCount),InstanceRole:cdk().stringToCloudFormation(properties.instanceRole),InstanceType:cdk().stringToCloudFormation(properties.instanceType),JobFlowId:cdk().stringToCloudFormation(properties.jobFlowId),Market:cdk().stringToCloudFormation(properties.market),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnInstanceGroupConfigPropsFromCloudFormation(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("autoScalingPolicy","AutoScalingPolicy",properties.AutoScalingPolicy!=null?CfnInstanceGroupConfigAutoScalingPolicyPropertyFromCloudFormation(properties.AutoScalingPolicy):void 0),ret.addPropertyResult("bidPrice","BidPrice",properties.BidPrice!=null?cfn_parse().FromCloudFormation.getString(properties.BidPrice):void 0),ret.addPropertyResult("configurations","Configurations",properties.Configurations!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceGroupConfigConfigurationPropertyFromCloudFormation)(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?CfnInstanceGroupConfigEbsConfigurationPropertyFromCloudFormation(properties.EbsConfiguration):void 0),ret.addPropertyResult("instanceCount","InstanceCount",properties.InstanceCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstanceCount):void 0),ret.addPropertyResult("instanceRole","InstanceRole",properties.InstanceRole!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceRole):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("jobFlowId","JobFlowId",properties.JobFlowId!=null?cfn_parse().FromCloudFormation.getString(properties.JobFlowId):void 0),ret.addPropertyResult("market","Market",properties.Market!=null?cfn_parse().FromCloudFormation.getString(properties.Market):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnSecurityConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::SecurityConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityConfiguration(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 isCfnSecurityConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityConfiguration.CFN_RESOURCE_TYPE_NAME}_name;_securityConfiguration;cfnPropertyNames={name:"Name",securityConfiguration:"SecurityConfiguration"};constructor(scope,id,props){super(scope,id,{type:CfnSecurityConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnSecurityConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityConfiguration),error}cdk().requireProperty(props,"securityConfiguration",this),this._name=props.name,this._securityConfiguration=props.securityConfiguration}get securityConfigurationRef(){return{securityConfigurationName:this.ref}}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get securityConfiguration(){return this._securityConfiguration}set securityConfiguration(value){cdk().traceProperty(this.node,"SecurityConfiguration"),this._securityConfiguration=value}get cfnProperties(){return{name:this._name,securityConfiguration:this._securityConfiguration}}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",CfnSecurityConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityConfigurationPropsToCloudFormation(props)}}exports.CfnSecurityConfiguration=CfnSecurityConfiguration;function CfnSecurityConfigurationPropsValidator(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().validateString)(properties.name)),errors.collect(cdk().propertyValidator("securityConfiguration",cdk().requiredValidator)(properties.securityConfiguration)),errors.collect(cdk().propertyValidator("securityConfiguration",cdk().validateObject)(properties.securityConfiguration)),errors.wrap('supplied properties not correct for "CfnSecurityConfigurationProps"')}function convertCfnSecurityConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityConfigurationPropsValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),SecurityConfiguration:cdk().objectToCloudFormation(properties.securityConfiguration)}):properties}function CfnSecurityConfigurationPropsFromCloudFormation(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("securityConfiguration","SecurityConfiguration",properties.SecurityConfiguration!=null?cfn_parse().FromCloudFormation.getAny(properties.SecurityConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnStep extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnStep",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::Step";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnStepPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnStep(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 isCfnStep(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnStep.CFN_RESOURCE_TYPE_NAME}_actionOnFailure;_encryptionKeyArn;_hadoopJarStep;_jobFlowId;_logUri;_name;cfnPropertyNames={actionOnFailure:"ActionOnFailure",encryptionKeyArn:"EncryptionKeyArn",hadoopJarStep:"HadoopJarStep",jobFlowId:"JobFlowId",logUri:"LogUri",name:"Name"};constructor(scope,id,props){super(scope,id,{type:CfnStep.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnStepProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnStep),error}cdk().requireProperty(props,"actionOnFailure",this),cdk().requireProperty(props,"hadoopJarStep",this),cdk().requireProperty(props,"jobFlowId",this),cdk().requireProperty(props,"name",this),this._actionOnFailure=props.actionOnFailure,this._encryptionKeyArn=props.encryptionKeyArn,this._hadoopJarStep=props.hadoopJarStep,this._jobFlowId=props.jobFlowId,this._logUri=props.logUri,this._name=props.name}get stepRef(){return{stepId:this.ref}}get actionOnFailure(){return this._actionOnFailure}set actionOnFailure(value){cdk().traceProperty(this.node,"ActionOnFailure"),this._actionOnFailure=value}get encryptionKeyArn(){return this._encryptionKeyArn}set encryptionKeyArn(value){cdk().traceProperty(this.node,"EncryptionKeyArn"),this._encryptionKeyArn=value}get hadoopJarStep(){return this._hadoopJarStep}set hadoopJarStep(value){cdk().traceProperty(this.node,"HadoopJarStep"),this._hadoopJarStep=value}get jobFlowId(){return this._jobFlowId}set jobFlowId(value){cdk().traceProperty(this.node,"JobFlowId"),this._jobFlowId=value}get logUri(){return this._logUri}set logUri(value){cdk().traceProperty(this.node,"LogUri"),this._logUri=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{actionOnFailure:this._actionOnFailure,encryptionKeyArn:this._encryptionKeyArn,hadoopJarStep:this._hadoopJarStep,jobFlowId:this._jobFlowId,logUri:this._logUri,name:this._name}}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",CfnStep.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnStepPropsToCloudFormation(props)}}exports.CfnStep=CfnStep;function CfnStepKeyValuePropertyValidator(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("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KeyValueProperty"')}function convertCfnStepKeyValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStepKeyValuePropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnStepKeyValuePropertyFromCloudFormation(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("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStepHadoopJarStepConfigPropertyValidator(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("jar",cdk().requiredValidator)(properties.jar)),errors.collect(cdk().propertyValidator("jar",cdk().validateString)(properties.jar)),errors.collect(cdk().propertyValidator("mainClass",cdk().validateString)(properties.mainClass)),errors.collect(cdk().propertyValidator("stepProperties",cdk().listValidator(CfnStepKeyValuePropertyValidator))(properties.stepProperties)),errors.wrap('supplied properties not correct for "HadoopJarStepConfigProperty"')}function convertCfnStepHadoopJarStepConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStepHadoopJarStepConfigPropertyValidator(properties).assertSuccess(),{Args:cdk().listMapper(cdk().stringToCloudFormation)(properties.args),Jar:cdk().stringToCloudFormation(properties.jar),MainClass:cdk().stringToCloudFormation(properties.mainClass),StepProperties:cdk().listMapper(convertCfnStepKeyValuePropertyToCloudFormation)(properties.stepProperties)}):properties}function CfnStepHadoopJarStepConfigPropertyFromCloudFormation(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("jar","Jar",properties.Jar!=null?cfn_parse().FromCloudFormation.getString(properties.Jar):void 0),ret.addPropertyResult("mainClass","MainClass",properties.MainClass!=null?cfn_parse().FromCloudFormation.getString(properties.MainClass):void 0),ret.addPropertyResult("stepProperties","StepProperties",properties.StepProperties!=null?cfn_parse().FromCloudFormation.getArray(CfnStepKeyValuePropertyFromCloudFormation)(properties.StepProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnStepPropsValidator(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("actionOnFailure",cdk().requiredValidator)(properties.actionOnFailure)),errors.collect(cdk().propertyValidator("actionOnFailure",cdk().validateString)(properties.actionOnFailure)),errors.collect(cdk().propertyValidator("encryptionKeyArn",cdk().validateString)(properties.encryptionKeyArn)),errors.collect(cdk().propertyValidator("hadoopJarStep",cdk().requiredValidator)(properties.hadoopJarStep)),errors.collect(cdk().propertyValidator("hadoopJarStep",CfnStepHadoopJarStepConfigPropertyValidator)(properties.hadoopJarStep)),errors.collect(cdk().propertyValidator("jobFlowId",cdk().requiredValidator)(properties.jobFlowId)),errors.collect(cdk().propertyValidator("jobFlowId",cdk().validateString)(properties.jobFlowId)),errors.collect(cdk().propertyValidator("logUri",cdk().validateString)(properties.logUri)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "CfnStepProps"')}function convertCfnStepPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStepPropsValidator(properties).assertSuccess(),{ActionOnFailure:cdk().stringToCloudFormation(properties.actionOnFailure),EncryptionKeyArn:cdk().stringToCloudFormation(properties.encryptionKeyArn),HadoopJarStep:convertCfnStepHadoopJarStepConfigPropertyToCloudFormation(properties.hadoopJarStep),JobFlowId:cdk().stringToCloudFormation(properties.jobFlowId),LogUri:cdk().stringToCloudFormation(properties.logUri),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnStepPropsFromCloudFormation(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("actionOnFailure","ActionOnFailure",properties.ActionOnFailure!=null?cfn_parse().FromCloudFormation.getString(properties.ActionOnFailure):void 0),ret.addPropertyResult("encryptionKeyArn","EncryptionKeyArn",properties.EncryptionKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyArn):void 0),ret.addPropertyResult("hadoopJarStep","HadoopJarStep",properties.HadoopJarStep!=null?CfnStepHadoopJarStepConfigPropertyFromCloudFormation(properties.HadoopJarStep):void 0),ret.addPropertyResult("jobFlowId","JobFlowId",properties.JobFlowId!=null?cfn_parse().FromCloudFormation.getString(properties.JobFlowId):void 0),ret.addPropertyResult("logUri","LogUri",properties.LogUri!=null?cfn_parse().FromCloudFormation.getString(properties.LogUri):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnStudio extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnStudio",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::Studio";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnStudioPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnStudio(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 isCfnStudio(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnStudio.CFN_RESOURCE_TYPE_NAME}static fromStudioArn(scope,id,arn){class Import extends cdk().Resource{studioRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:elasticmapreduce:${Region}:${Account}:studio/${StudioId}").parse(arn2);this.studioRef={studioId:variables.StudioId,studioArn:arn2}}}return new Import(scope,id,arn)}static fromStudioId(scope,id,studioId){class Import extends cdk().Resource{studioRef;constructor(scope2,id2,studioId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:elasticmapreduce:${Region}:${Account}:studio/${StudioId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,StudioId:studioId2});super(scope2,id2,{environmentFromArn:arn}),this.studioRef={studioId:studioId2,studioArn:arn}}}return new Import(scope,id,studioId)}static arnForStudio(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_emr_IStudioRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForStudio),error}return resource.studioRef.studioArn}_authMode;_defaultS3Location;_description;_encryptionKeyArn;_engineSecurityGroupId;_idcInstanceArn;_idcUserAssignment;_idpAuthUrl;_idpRelayStateParameterName;_name;_serviceRole;_subnetIds;tags;_tagsRaw;_trustedIdentityPropagationEnabled;_userRole;_vpcId;_workspaceSecurityGroupId;cfnPropertyNames={authMode:"AuthMode",defaultS3Location:"DefaultS3Location",description:"Description",encryptionKeyArn:"EncryptionKeyArn",engineSecurityGroupId:"EngineSecurityGroupId",idcInstanceArn:"IdcInstanceArn",idcUserAssignment:"IdcUserAssignment",idpAuthUrl:"IdpAuthUrl",idpRelayStateParameterName:"IdpRelayStateParameterName",name:"Name",serviceRole:"ServiceRole",subnetIds:"SubnetIds",tags:"Tags",trustedIdentityPropagationEnabled:"TrustedIdentityPropagationEnabled",userRole:"UserRole",vpcId:"VpcId",workspaceSecurityGroupId:"WorkspaceSecurityGroupId"};constructor(scope,id,props){super(scope,id,{type:CfnStudio.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnStudioProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnStudio),error}cdk().requireProperty(props,"authMode",this),cdk().requireProperty(props,"defaultS3Location",this),cdk().requireProperty(props,"engineSecurityGroupId",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"serviceRole",this),cdk().requireProperty(props,"subnetIds",this),cdk().requireProperty(props,"vpcId",this),cdk().requireProperty(props,"workspaceSecurityGroupId",this),this._authMode=props.authMode,this._defaultS3Location=cdk().getRefProperty(props.defaultS3Location?.bucketRef,"bucketName")??cdk().ensureStringOrUndefined(props.defaultS3Location,"defaultS3Location","s3.IBucketRef | string"),this._description=props.description,this._encryptionKeyArn=cdk().getRefProperty(props.encryptionKeyArn?.keyRef,"keyArn")??cdk().ensureStringOrUndefined(props.encryptionKeyArn,"encryptionKeyArn","kms.IKeyRef | string"),this._engineSecurityGroupId=cdk().getRefProperty(props.engineSecurityGroupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.engineSecurityGroupId,"engineSecurityGroupId","ec2.ISecurityGroupRef | string"),this._idcInstanceArn=props.idcInstanceArn,this._idcUserAssignment=props.idcUserAssignment,this._idpAuthUrl=props.idpAuthUrl,this._idpRelayStateParameterName=props.idpRelayStateParameterName,this._name=props.name,this._serviceRole=cdk().getRefProperty(props.serviceRole?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.serviceRole,"serviceRole","iam.IRoleRef | string"),this._subnetIds=cdk().mapArrayInPlace(props.subnetIds,item=>cdk().getRefProperty(item?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(item,"subnetIds","ec2.ISubnetRef | string")),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EMR::Studio",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._trustedIdentityPropagationEnabled=props.trustedIdentityPropagationEnabled,this._userRole=cdk().getRefProperty(props.userRole?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.userRole,"userRole","iam.IRoleRef | string"),this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string"),this._workspaceSecurityGroupId=cdk().getRefProperty(props.workspaceSecurityGroupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.workspaceSecurityGroupId,"workspaceSecurityGroupId","ec2.ISecurityGroupRef | string")}get studioRef(){return{studioId:this.ref,studioArn:this.attrArn}}get authMode(){return this._authMode}set authMode(value){cdk().traceProperty(this.node,"AuthMode"),this._authMode=value}get defaultS3Location(){return this._defaultS3Location}set defaultS3Location(value){cdk().traceProperty(this.node,"DefaultS3Location"),this._defaultS3Location=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get encryptionKeyArn(){return this._encryptionKeyArn}set encryptionKeyArn(value){cdk().traceProperty(this.node,"EncryptionKeyArn"),this._encryptionKeyArn=value}get engineSecurityGroupId(){return this._engineSecurityGroupId}set engineSecurityGroupId(value){cdk().traceProperty(this.node,"EngineSecurityGroupId"),this._engineSecurityGroupId=value}get idcInstanceArn(){return this._idcInstanceArn}set idcInstanceArn(value){cdk().traceProperty(this.node,"IdcInstanceArn"),this._idcInstanceArn=value}get idcUserAssignment(){return this._idcUserAssignment}set idcUserAssignment(value){cdk().traceProperty(this.node,"IdcUserAssignment"),this._idcUserAssignment=value}get idpAuthUrl(){return this._idpAuthUrl}set idpAuthUrl(value){cdk().traceProperty(this.node,"IdpAuthUrl"),this._idpAuthUrl=value}get idpRelayStateParameterName(){return this._idpRelayStateParameterName}set idpRelayStateParameterName(value){cdk().traceProperty(this.node,"IdpRelayStateParameterName"),this._idpRelayStateParameterName=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get serviceRole(){return this._serviceRole}set serviceRole(value){cdk().traceProperty(this.node,"ServiceRole"),this._serviceRole=value}get subnetIds(){return this._subnetIds}set subnetIds(value){cdk().traceProperty(this.node,"SubnetIds"),this._subnetIds=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get trustedIdentityPropagationEnabled(){return this._trustedIdentityPropagationEnabled}set trustedIdentityPropagationEnabled(value){cdk().traceProperty(this.node,"TrustedIdentityPropagationEnabled"),this._trustedIdentityPropagationEnabled=value}get userRole(){return this._userRole}set userRole(value){cdk().traceProperty(this.node,"UserRole"),this._userRole=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get workspaceSecurityGroupId(){return this._workspaceSecurityGroupId}set workspaceSecurityGroupId(value){cdk().traceProperty(this.node,"WorkspaceSecurityGroupId"),this._workspaceSecurityGroupId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStudioId(){return cdk().Token.asString(this.getAtt("StudioId",cdk().ResolutionTypeHint.STRING))}get attrUrl(){return cdk().Token.asString(this.getAtt("Url",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{authMode:this._authMode,defaultS3Location:this._defaultS3Location,description:this._description,encryptionKeyArn:this._encryptionKeyArn,engineSecurityGroupId:this._engineSecurityGroupId,idcInstanceArn:this._idcInstanceArn,idcUserAssignment:this._idcUserAssignment,idpAuthUrl:this._idpAuthUrl,idpRelayStateParameterName:this._idpRelayStateParameterName,name:this._name,serviceRole:this._serviceRole,subnetIds:this._subnetIds,tags:this.tags.renderTags(),trustedIdentityPropagationEnabled:this._trustedIdentityPropagationEnabled,userRole:this._userRole,vpcId:this._vpcId,workspaceSecurityGroupId:this._workspaceSecurityGroupId}}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",CfnStudio.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnStudioPropsToCloudFormation(props)}}exports.CfnStudio=CfnStudio;function CfnStudioPropsValidator(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("authMode",cdk().requiredValidator)(properties.authMode)),errors.collect(cdk().propertyValidator("authMode",cdk().validateString)(properties.authMode)),errors.collect(cdk().propertyValidator("defaultS3Location",cdk().requiredValidator)(properties.defaultS3Location)),errors.collect(cdk().propertyValidator("defaultS3Location",cdk().validateString)(properties.defaultS3Location)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("encryptionKeyArn",cdk().validateString)(properties.encryptionKeyArn)),errors.collect(cdk().propertyValidator("engineSecurityGroupId",cdk().requiredValidator)(properties.engineSecurityGroupId)),errors.collect(cdk().propertyValidator("engineSecurityGroupId",cdk().validateString)(properties.engineSecurityGroupId)),errors.collect(cdk().propertyValidator("idcInstanceArn",cdk().validateString)(properties.idcInstanceArn)),errors.collect(cdk().propertyValidator("idcUserAssignment",cdk().validateString)(properties.idcUserAssignment)),errors.collect(cdk().propertyValidator("idpAuthUrl",cdk().validateString)(properties.idpAuthUrl)),errors.collect(cdk().propertyValidator("idpRelayStateParameterName",cdk().validateString)(properties.idpRelayStateParameterName)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("serviceRole",cdk().requiredValidator)(properties.serviceRole)),errors.collect(cdk().propertyValidator("serviceRole",cdk().validateString)(properties.serviceRole)),errors.collect(cdk().propertyValidator("subnetIds",cdk().requiredValidator)(properties.subnetIds)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trustedIdentityPropagationEnabled",cdk().validateBoolean)(properties.trustedIdentityPropagationEnabled)),errors.collect(cdk().propertyValidator("userRole",cdk().validateString)(properties.userRole)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.collect(cdk().propertyValidator("workspaceSecurityGroupId",cdk().requiredValidator)(properties.workspaceSecurityGroupId)),errors.collect(cdk().propertyValidator("workspaceSecurityGroupId",cdk().validateString)(properties.workspaceSecurityGroupId)),errors.wrap('supplied properties not correct for "CfnStudioProps"')}function convertCfnStudioPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStudioPropsValidator(properties).assertSuccess(),{AuthMode:cdk().stringToCloudFormation(properties.authMode),DefaultS3Location:cdk().stringToCloudFormation(properties.defaultS3Location),Description:cdk().stringToCloudFormation(properties.description),EncryptionKeyArn:cdk().stringToCloudFormation(properties.encryptionKeyArn),EngineSecurityGroupId:cdk().stringToCloudFormation(properties.engineSecurityGroupId),IdcInstanceArn:cdk().stringToCloudFormation(properties.idcInstanceArn),IdcUserAssignment:cdk().stringToCloudFormation(properties.idcUserAssignment),IdpAuthUrl:cdk().stringToCloudFormation(properties.idpAuthUrl),IdpRelayStateParameterName:cdk().stringToCloudFormation(properties.idpRelayStateParameterName),Name:cdk().stringToCloudFormation(properties.name),ServiceRole:cdk().stringToCloudFormation(properties.serviceRole),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrustedIdentityPropagationEnabled:cdk().booleanToCloudFormation(properties.trustedIdentityPropagationEnabled),UserRole:cdk().stringToCloudFormation(properties.userRole),VpcId:cdk().stringToCloudFormation(properties.vpcId),WorkspaceSecurityGroupId:cdk().stringToCloudFormation(properties.workspaceSecurityGroupId)}):properties}function CfnStudioPropsFromCloudFormation(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("authMode","AuthMode",properties.AuthMode!=null?cfn_parse().FromCloudFormation.getString(properties.AuthMode):void 0),ret.addPropertyResult("defaultS3Location","DefaultS3Location",properties.DefaultS3Location!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultS3Location):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("encryptionKeyArn","EncryptionKeyArn",properties.EncryptionKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyArn):void 0),ret.addPropertyResult("engineSecurityGroupId","EngineSecurityGroupId",properties.EngineSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.EngineSecurityGroupId):void 0),ret.addPropertyResult("idcInstanceArn","IdcInstanceArn",properties.IdcInstanceArn!=null?cfn_parse().FromCloudFormation.getString(properties.IdcInstanceArn):void 0),ret.addPropertyResult("idcUserAssignment","IdcUserAssignment",properties.IdcUserAssignment!=null?cfn_parse().FromCloudFormation.getString(properties.IdcUserAssignment):void 0),ret.addPropertyResult("idpAuthUrl","IdpAuthUrl",properties.IdpAuthUrl!=null?cfn_parse().FromCloudFormation.getString(properties.IdpAuthUrl):void 0),ret.addPropertyResult("idpRelayStateParameterName","IdpRelayStateParameterName",properties.IdpRelayStateParameterName!=null?cfn_parse().FromCloudFormation.getString(properties.IdpRelayStateParameterName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("serviceRole","ServiceRole",properties.ServiceRole!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceRole):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trustedIdentityPropagationEnabled","TrustedIdentityPropagationEnabled",properties.TrustedIdentityPropagationEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TrustedIdentityPropagationEnabled):void 0),ret.addPropertyResult("userRole","UserRole",properties.UserRole!=null?cfn_parse().FromCloudFormation.getString(properties.UserRole):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("workspaceSecurityGroupId","WorkspaceSecurityGroupId",properties.WorkspaceSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceSecurityGroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnStudioSessionMapping extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnStudioSessionMapping",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::StudioSessionMapping";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnStudioSessionMappingPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnStudioSessionMapping(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 isCfnStudioSessionMapping(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnStudioSessionMapping.CFN_RESOURCE_TYPE_NAME}_identityName;_identityType;_sessionPolicyArn;_studioId;cfnPropertyNames={identityName:"IdentityName",identityType:"IdentityType",sessionPolicyArn:"SessionPolicyArn",studioId:"StudioId"};constructor(scope,id,props){super(scope,id,{type:CfnStudioSessionMapping.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnStudioSessionMappingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnStudioSessionMapping),error}cdk().requireProperty(props,"identityName",this),cdk().requireProperty(props,"identityType",this),cdk().requireProperty(props,"sessionPolicyArn",this),cdk().requireProperty(props,"studioId",this),this._identityName=props.identityName,this._identityType=props.identityType,this._sessionPolicyArn=cdk().getRefProperty(props.sessionPolicyArn?.managedPolicyRef,"policyArn")??cdk().ensureStringOrUndefined(props.sessionPolicyArn,"sessionPolicyArn","iam.IManagedPolicyRef | string"),this._studioId=cdk().getRefProperty(props.studioId?.studioRef,"studioId")??cdk().ensureStringOrUndefined(props.studioId,"studioId","emr.IStudioRef | string")}get studioSessionMappingRef(){return{studioId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),identityType:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),identityName:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get identityName(){return this._identityName}set identityName(value){cdk().traceProperty(this.node,"IdentityName"),this._identityName=value}get identityType(){return this._identityType}set identityType(value){cdk().traceProperty(this.node,"IdentityType"),this._identityType=value}get sessionPolicyArn(){return this._sessionPolicyArn}set sessionPolicyArn(value){cdk().traceProperty(this.node,"SessionPolicyArn"),this._sessionPolicyArn=value}get studioId(){return this._studioId}set studioId(value){cdk().traceProperty(this.node,"StudioId"),this._studioId=value}get cfnProperties(){return{identityName:this._identityName,identityType:this._identityType,sessionPolicyArn:this._sessionPolicyArn,studioId:this._studioId}}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",CfnStudioSessionMapping.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnStudioSessionMappingPropsToCloudFormation(props)}}exports.CfnStudioSessionMapping=CfnStudioSessionMapping;function CfnStudioSessionMappingPropsValidator(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("identityName",cdk().requiredValidator)(properties.identityName)),errors.collect(cdk().propertyValidator("identityName",cdk().validateString)(properties.identityName)),errors.collect(cdk().propertyValidator("identityType",cdk().requiredValidator)(properties.identityType)),errors.collect(cdk().propertyValidator("identityType",cdk().validateString)(properties.identityType)),errors.collect(cdk().propertyValidator("sessionPolicyArn",cdk().requiredValidator)(properties.sessionPolicyArn)),errors.collect(cdk().propertyValidator("sessionPolicyArn",cdk().validateString)(properties.sessionPolicyArn)),errors.collect(cdk().propertyValidator("studioId",cdk().requiredValidator)(properties.studioId)),errors.collect(cdk().propertyValidator("studioId",cdk().validateString)(properties.studioId)),errors.wrap('supplied properties not correct for "CfnStudioSessionMappingProps"')}function convertCfnStudioSessionMappingPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStudioSessionMappingPropsValidator(properties).assertSuccess(),{IdentityName:cdk().stringToCloudFormation(properties.identityName),IdentityType:cdk().stringToCloudFormation(properties.identityType),SessionPolicyArn:cdk().stringToCloudFormation(properties.sessionPolicyArn),StudioId:cdk().stringToCloudFormation(properties.studioId)}):properties}function CfnStudioSessionMappingPropsFromCloudFormation(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("identityName","IdentityName",properties.IdentityName!=null?cfn_parse().FromCloudFormation.getString(properties.IdentityName):void 0),ret.addPropertyResult("identityType","IdentityType",properties.IdentityType!=null?cfn_parse().FromCloudFormation.getString(properties.IdentityType):void 0),ret.addPropertyResult("sessionPolicyArn","SessionPolicyArn",properties.SessionPolicyArn!=null?cfn_parse().FromCloudFormation.getString(properties.SessionPolicyArn):void 0),ret.addPropertyResult("studioId","StudioId",properties.StudioId!=null?cfn_parse().FromCloudFormation.getString(properties.StudioId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWALWorkspace extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_emr.CfnWALWorkspace",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EMR::WALWorkspace";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWALWorkspacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWALWorkspace(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 isCfnWALWorkspace(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWALWorkspace.CFN_RESOURCE_TYPE_NAME}cdkTagManager;_tags;_walWorkspaceName;cfnPropertyNames={tags:"Tags",walWorkspaceName:"WALWorkspaceName"};constructor(scope,id,props={}){super(scope,id,{type:CfnWALWorkspace.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_emr_CfnWALWorkspaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWALWorkspace),error}this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EMR::WALWorkspace",void 0,{tagPropertyName:"tags"}),this._tags=props.tags,this._walWorkspaceName=props.walWorkspaceName}get walWorkspaceRef(){return{walWorkspaceName:this.ref}}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get walWorkspaceName(){return this._walWorkspaceName}set walWorkspaceName(value){cdk().traceProperty(this.node,"WALWorkspaceName"),this._walWorkspaceName=value}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),walWorkspaceName:this._walWorkspaceName}}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",CfnWALWorkspace.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWALWorkspacePropsToCloudFormation(props)}}exports.CfnWALWorkspace=CfnWALWorkspace;function CfnWALWorkspacePropsValidator(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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("walWorkspaceName",cdk().validateString)(properties.walWorkspaceName)),errors.wrap('supplied properties not correct for "CfnWALWorkspaceProps"')}function convertCfnWALWorkspacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWALWorkspacePropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),WALWorkspaceName:cdk().stringToCloudFormation(properties.walWorkspaceName)}):properties}function CfnWALWorkspacePropsFromCloudFormation(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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("walWorkspaceName","WALWorkspaceName",properties.WALWorkspaceName!=null?cfn_parse().FromCloudFormation.getString(properties.WALWorkspaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}