"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnExpressGatewayService=exports.CfnDaemonTaskDefinition=exports.CfnDaemon=exports.CfnTaskSet=exports.CfnTaskDefinition=exports.CfnService=exports.CfnPrimaryTaskSet=exports.CfnClusterCapacityProviderAssociations=exports.CfnCluster=exports.CfnCapacityProvider=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 CfnCapacityProvider extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnCapacityProvider",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::CapacityProvider";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityProviderPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCapacityProvider(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 isCfnCapacityProvider(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCapacityProvider.CFN_RESOURCE_TYPE_NAME}static fromCapacityProviderName(scope,id,capacityProviderName){class Import extends cdk().Resource{capacityProviderRef;constructor(scope2,id2,capacityProviderName2){super(scope2,id2),this.capacityProviderRef={capacityProviderName:capacityProviderName2}}}return new Import(scope,id,capacityProviderName)}static arnForCapacityProvider(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_ICapacityProviderRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCapacityProvider),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ecs:${Region}:${Account}:capacity-provider/${CapacityProviderName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,CapacityProviderName:resource.capacityProviderRef.capacityProviderName})}_autoScalingGroupProvider;_clusterName;_managedInstancesProvider;_name;tags;_tagsRaw;cfnPropertyNames={autoScalingGroupProvider:"AutoScalingGroupProvider",clusterName:"ClusterName",managedInstancesProvider:"ManagedInstancesProvider",name:"Name",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnCapacityProvider.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnCapacityProviderProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityProvider),error}this._autoScalingGroupProvider=props.autoScalingGroupProvider,this._clusterName=props.clusterName,this._managedInstancesProvider=props.managedInstancesProvider,this._name=props.name,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::CapacityProvider",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get capacityProviderRef(){return{capacityProviderName:this.ref}}get autoScalingGroupProvider(){return this._autoScalingGroupProvider}set autoScalingGroupProvider(value){cdk().traceProperty(this.node,"AutoScalingGroupProvider"),this._autoScalingGroupProvider=value}get clusterName(){return this._clusterName}set clusterName(value){cdk().traceProperty(this.node,"ClusterName"),this._clusterName=value}get managedInstancesProvider(){return this._managedInstancesProvider}set managedInstancesProvider(value){cdk().traceProperty(this.node,"ManagedInstancesProvider"),this._managedInstancesProvider=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get cfnProperties(){return{autoScalingGroupProvider:this._autoScalingGroupProvider,clusterName:this._clusterName,managedInstancesProvider:this._managedInstancesProvider,name:this._name,tags:this.tags.renderTags()}}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",CfnCapacityProvider.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCapacityProviderPropsToCloudFormation(props)}}exports.CfnCapacityProvider=CfnCapacityProvider;function CfnCapacityProviderManagedScalingPropertyValidator(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("instanceWarmupPeriod",cdk().validateNumber)(properties.instanceWarmupPeriod)),errors.collect(cdk().propertyValidator("maximumScalingStepSize",cdk().validateNumber)(properties.maximumScalingStepSize)),errors.collect(cdk().propertyValidator("minimumScalingStepSize",cdk().validateNumber)(properties.minimumScalingStepSize)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("targetCapacity",cdk().validateNumber)(properties.targetCapacity)),errors.wrap('supplied properties not correct for "ManagedScalingProperty"')}function convertCfnCapacityProviderManagedScalingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderManagedScalingPropertyValidator(properties).assertSuccess(),{InstanceWarmupPeriod:cdk().numberToCloudFormation(properties.instanceWarmupPeriod),MaximumScalingStepSize:cdk().numberToCloudFormation(properties.maximumScalingStepSize),MinimumScalingStepSize:cdk().numberToCloudFormation(properties.minimumScalingStepSize),Status:cdk().stringToCloudFormation(properties.status),TargetCapacity:cdk().numberToCloudFormation(properties.targetCapacity)}):properties}function CfnCapacityProviderManagedScalingPropertyFromCloudFormation(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("instanceWarmupPeriod","InstanceWarmupPeriod",properties.InstanceWarmupPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstanceWarmupPeriod):void 0),ret.addPropertyResult("maximumScalingStepSize","MaximumScalingStepSize",properties.MaximumScalingStepSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumScalingStepSize):void 0),ret.addPropertyResult("minimumScalingStepSize","MinimumScalingStepSize",properties.MinimumScalingStepSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumScalingStepSize):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("targetCapacity","TargetCapacity",properties.TargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderAutoScalingGroupProviderPropertyValidator(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("autoScalingGroupArn",cdk().requiredValidator)(properties.autoScalingGroupArn)),errors.collect(cdk().propertyValidator("autoScalingGroupArn",cdk().validateString)(properties.autoScalingGroupArn)),errors.collect(cdk().propertyValidator("managedDraining",cdk().validateString)(properties.managedDraining)),errors.collect(cdk().propertyValidator("managedScaling",CfnCapacityProviderManagedScalingPropertyValidator)(properties.managedScaling)),errors.collect(cdk().propertyValidator("managedTerminationProtection",cdk().validateString)(properties.managedTerminationProtection)),errors.wrap('supplied properties not correct for "AutoScalingGroupProviderProperty"')}function convertCfnCapacityProviderAutoScalingGroupProviderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderAutoScalingGroupProviderPropertyValidator(properties).assertSuccess(),{AutoScalingGroupArn:cdk().stringToCloudFormation(properties.autoScalingGroupArn),ManagedDraining:cdk().stringToCloudFormation(properties.managedDraining),ManagedScaling:convertCfnCapacityProviderManagedScalingPropertyToCloudFormation(properties.managedScaling),ManagedTerminationProtection:cdk().stringToCloudFormation(properties.managedTerminationProtection)}):properties}function CfnCapacityProviderAutoScalingGroupProviderPropertyFromCloudFormation(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("autoScalingGroupArn","AutoScalingGroupArn",properties.AutoScalingGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupArn):void 0),ret.addPropertyResult("managedDraining","ManagedDraining",properties.ManagedDraining!=null?cfn_parse().FromCloudFormation.getString(properties.ManagedDraining):void 0),ret.addPropertyResult("managedScaling","ManagedScaling",properties.ManagedScaling!=null?CfnCapacityProviderManagedScalingPropertyFromCloudFormation(properties.ManagedScaling):void 0),ret.addPropertyResult("managedTerminationProtection","ManagedTerminationProtection",properties.ManagedTerminationProtection!=null?cfn_parse().FromCloudFormation.getString(properties.ManagedTerminationProtection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderAutoRepairConfigurationPropertyValidator(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("actionsStatus",cdk().validateString)(properties.actionsStatus)),errors.wrap('supplied properties not correct for "AutoRepairConfigurationProperty"')}function convertCfnCapacityProviderAutoRepairConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderAutoRepairConfigurationPropertyValidator(properties).assertSuccess(),{ActionsStatus:cdk().stringToCloudFormation(properties.actionsStatus)}):properties}function CfnCapacityProviderAutoRepairConfigurationPropertyFromCloudFormation(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("actionsStatus","ActionsStatus",properties.ActionsStatus!=null?cfn_parse().FromCloudFormation.getString(properties.ActionsStatus):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderInfrastructureOptimizationPropertyValidator(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("scaleInAfter",cdk().validateNumber)(properties.scaleInAfter)),errors.wrap('supplied properties not correct for "InfrastructureOptimizationProperty"')}function convertCfnCapacityProviderInfrastructureOptimizationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderInfrastructureOptimizationPropertyValidator(properties).assertSuccess(),{ScaleInAfter:cdk().numberToCloudFormation(properties.scaleInAfter)}):properties}function CfnCapacityProviderInfrastructureOptimizationPropertyFromCloudFormation(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("scaleInAfter","ScaleInAfter",properties.ScaleInAfter!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScaleInAfter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderManagedInstancesStorageConfigurationPropertyValidator(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("storageSizeGiB",cdk().requiredValidator)(properties.storageSizeGiB)),errors.collect(cdk().propertyValidator("storageSizeGiB",cdk().validateNumber)(properties.storageSizeGiB)),errors.wrap('supplied properties not correct for "ManagedInstancesStorageConfigurationProperty"')}function convertCfnCapacityProviderManagedInstancesStorageConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderManagedInstancesStorageConfigurationPropertyValidator(properties).assertSuccess(),{StorageSizeGiB:cdk().numberToCloudFormation(properties.storageSizeGiB)}):properties}function CfnCapacityProviderManagedInstancesStorageConfigurationPropertyFromCloudFormation(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("storageSizeGiB","StorageSizeGiB",properties.StorageSizeGiB!=null?cfn_parse().FromCloudFormation.getNumber(properties.StorageSizeGiB):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderManagedInstancesNetworkConfigurationPropertyValidator(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("securityGroups",cdk().requiredValidator)(properties.securityGroups)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("subnets",cdk().requiredValidator)(properties.subnets)),errors.collect(cdk().propertyValidator("subnets",cdk().listValidator(cdk().validateString))(properties.subnets)),errors.wrap('supplied properties not correct for "ManagedInstancesNetworkConfigurationProperty"')}function convertCfnCapacityProviderManagedInstancesNetworkConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderManagedInstancesNetworkConfigurationPropertyValidator(properties).assertSuccess(),{SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),Subnets:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnets)}):properties}function CfnCapacityProviderManagedInstancesNetworkConfigurationPropertyFromCloudFormation(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("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("subnets","Subnets",properties.Subnets!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Subnets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderNetworkInterfaceCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function convertCfnCapacityProviderNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderNetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderNetworkInterfaceCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderMemoryGiBPerVCpuRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function convertCfnCapacityProviderMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderMemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderMemoryGiBPerVCpuRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderVCpuCountRangeRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().requiredValidator)(properties.min)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function convertCfnCapacityProviderVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderVCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderVCpuCountRangeRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderNetworkBandwidthGbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function convertCfnCapacityProviderNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderNetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderNetworkBandwidthGbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderAcceleratorCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function convertCfnCapacityProviderAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderAcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderAcceleratorCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function convertCfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function convertCfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().requiredValidator)(properties.min)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function convertCfnCapacityProviderMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderTotalLocalStorageGBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function convertCfnCapacityProviderTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderTotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnCapacityProviderTotalLocalStorageGBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderInstanceRequirementsRequestPropertyValidator(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("acceleratorCount",CfnCapacityProviderAcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk().propertyValidator("acceleratorManufacturers",cdk().listValidator(cdk().validateString))(properties.acceleratorManufacturers)),errors.collect(cdk().propertyValidator("acceleratorNames",cdk().listValidator(cdk().validateString))(properties.acceleratorNames)),errors.collect(cdk().propertyValidator("acceleratorTotalMemoryMiB",CfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk().propertyValidator("acceleratorTypes",cdk().listValidator(cdk().validateString))(properties.acceleratorTypes)),errors.collect(cdk().propertyValidator("allowedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.allowedInstanceTypes)),errors.collect(cdk().propertyValidator("bareMetal",cdk().validateString)(properties.bareMetal)),errors.collect(cdk().propertyValidator("baselineEbsBandwidthMbps",CfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk().propertyValidator("burstablePerformance",cdk().validateString)(properties.burstablePerformance)),errors.collect(cdk().propertyValidator("cpuManufacturers",cdk().listValidator(cdk().validateString))(properties.cpuManufacturers)),errors.collect(cdk().propertyValidator("excludedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.excludedInstanceTypes)),errors.collect(cdk().propertyValidator("instanceGenerations",cdk().listValidator(cdk().validateString))(properties.instanceGenerations)),errors.collect(cdk().propertyValidator("localStorage",cdk().validateString)(properties.localStorage)),errors.collect(cdk().propertyValidator("localStorageTypes",cdk().listValidator(cdk().validateString))(properties.localStorageTypes)),errors.collect(cdk().propertyValidator("maxSpotPriceAsPercentageOfOptimalOnDemandPrice",cdk().validateNumber)(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice)),errors.collect(cdk().propertyValidator("memoryGiBPerVCpu",CfnCapacityProviderMemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk().propertyValidator("memoryMiB",cdk().requiredValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("memoryMiB",CfnCapacityProviderMemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("networkBandwidthGbps",CfnCapacityProviderNetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk().propertyValidator("networkInterfaceCount",CfnCapacityProviderNetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk().propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("requireHibernateSupport",cdk().validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk().propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("totalLocalStorageGb",CfnCapacityProviderTotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk().propertyValidator("vCpuCount",cdk().requiredValidator)(properties.vCpuCount)),errors.collect(cdk().propertyValidator("vCpuCount",CfnCapacityProviderVCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function convertCfnCapacityProviderInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderInstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:convertCfnCapacityProviderAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:convertCfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk().stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:convertCfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk().stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk().listMapper(cdk().stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk().stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.localStorageTypes),MaxSpotPriceAsPercentageOfOptimalOnDemandPrice:cdk().numberToCloudFormation(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice),MemoryGiBPerVCpu:convertCfnCapacityProviderMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:convertCfnCapacityProviderMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:convertCfnCapacityProviderNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:convertCfnCapacityProviderNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk().booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:convertCfnCapacityProviderTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:convertCfnCapacityProviderVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnCapacityProviderInstanceRequirementsRequestPropertyFromCloudFormation(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("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnCapacityProviderAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnCapacityProviderAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse().FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnCapacityProviderBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse().FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse().FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LocalStorageTypes):void 0),ret.addPropertyResult("maxSpotPriceAsPercentageOfOptimalOnDemandPrice","MaxSpotPriceAsPercentageOfOptimalOnDemandPrice",properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnCapacityProviderMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnCapacityProviderMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnCapacityProviderNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnCapacityProviderNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnCapacityProviderTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnCapacityProviderVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderCapacityReservationRequestPropertyValidator(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("reservationGroupArn",cdk().validateString)(properties.reservationGroupArn)),errors.collect(cdk().propertyValidator("reservationPreference",cdk().validateString)(properties.reservationPreference)),errors.wrap('supplied properties not correct for "CapacityReservationRequestProperty"')}function convertCfnCapacityProviderCapacityReservationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderCapacityReservationRequestPropertyValidator(properties).assertSuccess(),{ReservationGroupArn:cdk().stringToCloudFormation(properties.reservationGroupArn),ReservationPreference:cdk().stringToCloudFormation(properties.reservationPreference)}):properties}function CfnCapacityProviderCapacityReservationRequestPropertyFromCloudFormation(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("reservationGroupArn","ReservationGroupArn",properties.ReservationGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.ReservationGroupArn):void 0),ret.addPropertyResult("reservationPreference","ReservationPreference",properties.ReservationPreference!=null?cfn_parse().FromCloudFormation.getString(properties.ReservationPreference):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyValidator(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("useLocalStorage",cdk().validateBoolean)(properties.useLocalStorage)),errors.wrap('supplied properties not correct for "ManagedInstancesLocalStorageConfigurationProperty"')}function convertCfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyValidator(properties).assertSuccess(),{UseLocalStorage:cdk().booleanToCloudFormation(properties.useLocalStorage)}):properties}function CfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyFromCloudFormation(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("useLocalStorage","UseLocalStorage",properties.UseLocalStorage!=null?cfn_parse().FromCloudFormation.getBoolean(properties.UseLocalStorage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderInstanceLaunchTemplatePropertyValidator(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("capacityOptionType",cdk().validateString)(properties.capacityOptionType)),errors.collect(cdk().propertyValidator("capacityReservations",CfnCapacityProviderCapacityReservationRequestPropertyValidator)(properties.capacityReservations)),errors.collect(cdk().propertyValidator("ec2InstanceProfileArn",cdk().requiredValidator)(properties.ec2InstanceProfileArn)),errors.collect(cdk().propertyValidator("ec2InstanceProfileArn",cdk().validateString)(properties.ec2InstanceProfileArn)),errors.collect(cdk().propertyValidator("fipsEnabled",cdk().validateBoolean)(properties.fipsEnabled)),errors.collect(cdk().propertyValidator("instanceMetadataTagsPropagation",cdk().validateBoolean)(properties.instanceMetadataTagsPropagation)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnCapacityProviderInstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("localStorageConfiguration",CfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyValidator)(properties.localStorageConfiguration)),errors.collect(cdk().propertyValidator("monitoring",cdk().validateString)(properties.monitoring)),errors.collect(cdk().propertyValidator("networkConfiguration",cdk().requiredValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("networkConfiguration",CfnCapacityProviderManagedInstancesNetworkConfigurationPropertyValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("storageConfiguration",CfnCapacityProviderManagedInstancesStorageConfigurationPropertyValidator)(properties.storageConfiguration)),errors.wrap('supplied properties not correct for "InstanceLaunchTemplateProperty"')}function convertCfnCapacityProviderInstanceLaunchTemplatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderInstanceLaunchTemplatePropertyValidator(properties).assertSuccess(),{CapacityOptionType:cdk().stringToCloudFormation(properties.capacityOptionType),CapacityReservations:convertCfnCapacityProviderCapacityReservationRequestPropertyToCloudFormation(properties.capacityReservations),Ec2InstanceProfileArn:cdk().stringToCloudFormation(properties.ec2InstanceProfileArn),FipsEnabled:cdk().booleanToCloudFormation(properties.fipsEnabled),InstanceMetadataTagsPropagation:cdk().booleanToCloudFormation(properties.instanceMetadataTagsPropagation),InstanceRequirements:convertCfnCapacityProviderInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),LocalStorageConfiguration:convertCfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyToCloudFormation(properties.localStorageConfiguration),Monitoring:cdk().stringToCloudFormation(properties.monitoring),NetworkConfiguration:convertCfnCapacityProviderManagedInstancesNetworkConfigurationPropertyToCloudFormation(properties.networkConfiguration),StorageConfiguration:convertCfnCapacityProviderManagedInstancesStorageConfigurationPropertyToCloudFormation(properties.storageConfiguration)}):properties}function CfnCapacityProviderInstanceLaunchTemplatePropertyFromCloudFormation(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("capacityOptionType","CapacityOptionType",properties.CapacityOptionType!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityOptionType):void 0),ret.addPropertyResult("capacityReservations","CapacityReservations",properties.CapacityReservations!=null?CfnCapacityProviderCapacityReservationRequestPropertyFromCloudFormation(properties.CapacityReservations):void 0),ret.addPropertyResult("ec2InstanceProfileArn","Ec2InstanceProfileArn",properties.Ec2InstanceProfileArn!=null?cfn_parse().FromCloudFormation.getString(properties.Ec2InstanceProfileArn):void 0),ret.addPropertyResult("fipsEnabled","FipsEnabled",properties.FipsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.FipsEnabled):void 0),ret.addPropertyResult("instanceMetadataTagsPropagation","InstanceMetadataTagsPropagation",properties.InstanceMetadataTagsPropagation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.InstanceMetadataTagsPropagation):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnCapacityProviderInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("localStorageConfiguration","LocalStorageConfiguration",properties.LocalStorageConfiguration!=null?CfnCapacityProviderManagedInstancesLocalStorageConfigurationPropertyFromCloudFormation(properties.LocalStorageConfiguration):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?cfn_parse().FromCloudFormation.getString(properties.Monitoring):void 0),ret.addPropertyResult("networkConfiguration","NetworkConfiguration",properties.NetworkConfiguration!=null?CfnCapacityProviderManagedInstancesNetworkConfigurationPropertyFromCloudFormation(properties.NetworkConfiguration):void 0),ret.addPropertyResult("storageConfiguration","StorageConfiguration",properties.StorageConfiguration!=null?CfnCapacityProviderManagedInstancesStorageConfigurationPropertyFromCloudFormation(properties.StorageConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderManagedInstancesProviderPropertyValidator(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("autoRepairConfiguration",CfnCapacityProviderAutoRepairConfigurationPropertyValidator)(properties.autoRepairConfiguration)),errors.collect(cdk().propertyValidator("infrastructureOptimization",CfnCapacityProviderInfrastructureOptimizationPropertyValidator)(properties.infrastructureOptimization)),errors.collect(cdk().propertyValidator("infrastructureRoleArn",cdk().requiredValidator)(properties.infrastructureRoleArn)),errors.collect(cdk().propertyValidator("infrastructureRoleArn",cdk().validateString)(properties.infrastructureRoleArn)),errors.collect(cdk().propertyValidator("instanceLaunchTemplate",cdk().requiredValidator)(properties.instanceLaunchTemplate)),errors.collect(cdk().propertyValidator("instanceLaunchTemplate",CfnCapacityProviderInstanceLaunchTemplatePropertyValidator)(properties.instanceLaunchTemplate)),errors.collect(cdk().propertyValidator("propagateTags",cdk().validateString)(properties.propagateTags)),errors.wrap('supplied properties not correct for "ManagedInstancesProviderProperty"')}function convertCfnCapacityProviderManagedInstancesProviderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderManagedInstancesProviderPropertyValidator(properties).assertSuccess(),{AutoRepairConfiguration:convertCfnCapacityProviderAutoRepairConfigurationPropertyToCloudFormation(properties.autoRepairConfiguration),InfrastructureOptimization:convertCfnCapacityProviderInfrastructureOptimizationPropertyToCloudFormation(properties.infrastructureOptimization),InfrastructureRoleArn:cdk().stringToCloudFormation(properties.infrastructureRoleArn),InstanceLaunchTemplate:convertCfnCapacityProviderInstanceLaunchTemplatePropertyToCloudFormation(properties.instanceLaunchTemplate),PropagateTags:cdk().stringToCloudFormation(properties.propagateTags)}):properties}function CfnCapacityProviderManagedInstancesProviderPropertyFromCloudFormation(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("autoRepairConfiguration","AutoRepairConfiguration",properties.AutoRepairConfiguration!=null?CfnCapacityProviderAutoRepairConfigurationPropertyFromCloudFormation(properties.AutoRepairConfiguration):void 0),ret.addPropertyResult("infrastructureOptimization","InfrastructureOptimization",properties.InfrastructureOptimization!=null?CfnCapacityProviderInfrastructureOptimizationPropertyFromCloudFormation(properties.InfrastructureOptimization):void 0),ret.addPropertyResult("infrastructureRoleArn","InfrastructureRoleArn",properties.InfrastructureRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.InfrastructureRoleArn):void 0),ret.addPropertyResult("instanceLaunchTemplate","InstanceLaunchTemplate",properties.InstanceLaunchTemplate!=null?CfnCapacityProviderInstanceLaunchTemplatePropertyFromCloudFormation(properties.InstanceLaunchTemplate):void 0),ret.addPropertyResult("propagateTags","PropagateTags",properties.PropagateTags!=null?cfn_parse().FromCloudFormation.getString(properties.PropagateTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityProviderPropsValidator(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("autoScalingGroupProvider",CfnCapacityProviderAutoScalingGroupProviderPropertyValidator)(properties.autoScalingGroupProvider)),errors.collect(cdk().propertyValidator("clusterName",cdk().validateString)(properties.clusterName)),errors.collect(cdk().propertyValidator("managedInstancesProvider",CfnCapacityProviderManagedInstancesProviderPropertyValidator)(properties.managedInstancesProvider)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCapacityProviderProps"')}function convertCfnCapacityProviderPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityProviderPropsValidator(properties).assertSuccess(),{AutoScalingGroupProvider:convertCfnCapacityProviderAutoScalingGroupProviderPropertyToCloudFormation(properties.autoScalingGroupProvider),ClusterName:cdk().stringToCloudFormation(properties.clusterName),ManagedInstancesProvider:convertCfnCapacityProviderManagedInstancesProviderPropertyToCloudFormation(properties.managedInstancesProvider),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityProviderPropsFromCloudFormation(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("autoScalingGroupProvider","AutoScalingGroupProvider",properties.AutoScalingGroupProvider!=null?CfnCapacityProviderAutoScalingGroupProviderPropertyFromCloudFormation(properties.AutoScalingGroupProvider):void 0),ret.addPropertyResult("clusterName","ClusterName",properties.ClusterName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterName):void 0),ret.addPropertyResult("managedInstancesProvider","ManagedInstancesProvider",properties.ManagedInstancesProvider!=null?CfnCapacityProviderManagedInstancesProviderPropertyFromCloudFormation(properties.ManagedInstancesProvider):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCluster extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnCluster",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::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 fromClusterArn(scope,id,arn){class Import extends cdk().Resource{clusterRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ecs:${Region}:${Account}:cluster/${ClusterName}").parse(arn2);this.clusterRef={clusterName:variables.ClusterName,clusterArn:arn2}}}return new Import(scope,id,arn)}static fromClusterName(scope,id,clusterName){class Import extends cdk().Resource{clusterRef;constructor(scope2,id2,clusterName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ecs:${Region}:${Account}:cluster/${ClusterName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ClusterName:clusterName2});super(scope2,id2,{environmentFromArn:arn}),this.clusterRef={clusterName:clusterName2,clusterArn:arn}}}return new Import(scope,id,clusterName)}static arnForCluster(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_IClusterRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCluster),error}return resource.clusterRef.clusterArn}_capacityProviders;_clusterName;_clusterSettings;_configuration;_defaultCapacityProviderStrategy;_serviceConnectDefaults;tags;_tagsRaw;cfnPropertyNames={capacityProviders:"CapacityProviders",clusterName:"ClusterName",clusterSettings:"ClusterSettings",configuration:"Configuration",defaultCapacityProviderStrategy:"DefaultCapacityProviderStrategy",serviceConnectDefaults:"ServiceConnectDefaults",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnCluster.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCluster),error}this._capacityProviders=cdk().mapArrayInPlace(props.capacityProviders,item=>cdk().getRefProperty(item?.capacityProviderRef,"capacityProviderName")??cdk().ensureStringOrUndefined(item,"capacityProviders","ecs.ICapacityProviderRef | string")),this._clusterName=props.clusterName,this._clusterSettings=props.clusterSettings,this._configuration=props.configuration,this._defaultCapacityProviderStrategy=props.defaultCapacityProviderStrategy,this._serviceConnectDefaults=props.serviceConnectDefaults,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::Cluster",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get clusterRef(){return{clusterName:this.ref,clusterArn:this.attrArn}}get capacityProviders(){return this._capacityProviders}set capacityProviders(value){cdk().traceProperty(this.node,"CapacityProviders"),this._capacityProviders=value}get clusterName(){return this._clusterName}set clusterName(value){cdk().traceProperty(this.node,"ClusterName"),this._clusterName=value}get clusterSettings(){return this._clusterSettings}set clusterSettings(value){cdk().traceProperty(this.node,"ClusterSettings"),this._clusterSettings=value}get configuration(){return this._configuration}set configuration(value){cdk().traceProperty(this.node,"Configuration"),this._configuration=value}get defaultCapacityProviderStrategy(){return this._defaultCapacityProviderStrategy}set defaultCapacityProviderStrategy(value){cdk().traceProperty(this.node,"DefaultCapacityProviderStrategy"),this._defaultCapacityProviderStrategy=value}get serviceConnectDefaults(){return this._serviceConnectDefaults}set serviceConnectDefaults(value){cdk().traceProperty(this.node,"ServiceConnectDefaults"),this._serviceConnectDefaults=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{capacityProviders:this._capacityProviders,clusterName:this._clusterName,clusterSettings:this._clusterSettings,configuration:this._configuration,defaultCapacityProviderStrategy:this._defaultCapacityProviderStrategy,serviceConnectDefaults:this._serviceConnectDefaults,tags:this.tags.renderTags()}}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 CfnClusterClusterSettingsPropertyValidator(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("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "ClusterSettingsProperty"')}function convertCfnClusterClusterSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterClusterSettingsPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnClusterClusterSettingsPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterCapacityProviderStrategyItemPropertyValidator(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("base",cdk().validateNumber)(properties.base)),errors.collect(cdk().propertyValidator("capacityProvider",cdk().validateString)(properties.capacityProvider)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "CapacityProviderStrategyItemProperty"')}function convertCfnClusterCapacityProviderStrategyItemPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterCapacityProviderStrategyItemPropertyValidator(properties).assertSuccess(),{Base:cdk().numberToCloudFormation(properties.base),CapacityProvider:cdk().stringToCloudFormation(properties.capacityProvider),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnClusterCapacityProviderStrategyItemPropertyFromCloudFormation(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("base","Base",properties.Base!=null?cfn_parse().FromCloudFormation.getNumber(properties.Base):void 0),ret.addPropertyResult("capacityProvider","CapacityProvider",properties.CapacityProvider!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityProvider):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterExecuteCommandLogConfigurationPropertyValidator(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("cloudWatchEncryptionEnabled",cdk().validateBoolean)(properties.cloudWatchEncryptionEnabled)),errors.collect(cdk().propertyValidator("cloudWatchLogGroupName",cdk().validateString)(properties.cloudWatchLogGroupName)),errors.collect(cdk().propertyValidator("s3BucketName",cdk().validateString)(properties.s3BucketName)),errors.collect(cdk().propertyValidator("s3EncryptionEnabled",cdk().validateBoolean)(properties.s3EncryptionEnabled)),errors.collect(cdk().propertyValidator("s3KeyPrefix",cdk().validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "ExecuteCommandLogConfigurationProperty"')}function convertCfnClusterExecuteCommandLogConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterExecuteCommandLogConfigurationPropertyValidator(properties).assertSuccess(),{CloudWatchEncryptionEnabled:cdk().booleanToCloudFormation(properties.cloudWatchEncryptionEnabled),CloudWatchLogGroupName:cdk().stringToCloudFormation(properties.cloudWatchLogGroupName),S3BucketName:cdk().stringToCloudFormation(properties.s3BucketName),S3EncryptionEnabled:cdk().booleanToCloudFormation(properties.s3EncryptionEnabled),S3KeyPrefix:cdk().stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnClusterExecuteCommandLogConfigurationPropertyFromCloudFormation(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("cloudWatchEncryptionEnabled","CloudWatchEncryptionEnabled",properties.CloudWatchEncryptionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CloudWatchEncryptionEnabled):void 0),ret.addPropertyResult("cloudWatchLogGroupName","CloudWatchLogGroupName",properties.CloudWatchLogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.CloudWatchLogGroupName):void 0),ret.addPropertyResult("s3BucketName","S3BucketName",properties.S3BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.S3BucketName):void 0),ret.addPropertyResult("s3EncryptionEnabled","S3EncryptionEnabled",properties.S3EncryptionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.S3EncryptionEnabled):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.S3KeyPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterExecuteCommandConfigurationPropertyValidator(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("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("logConfiguration",CfnClusterExecuteCommandLogConfigurationPropertyValidator)(properties.logConfiguration)),errors.collect(cdk().propertyValidator("logging",cdk().validateString)(properties.logging)),errors.wrap('supplied properties not correct for "ExecuteCommandConfigurationProperty"')}function convertCfnClusterExecuteCommandConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterExecuteCommandConfigurationPropertyValidator(properties).assertSuccess(),{KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),LogConfiguration:convertCfnClusterExecuteCommandLogConfigurationPropertyToCloudFormation(properties.logConfiguration),Logging:cdk().stringToCloudFormation(properties.logging)}):properties}function CfnClusterExecuteCommandConfigurationPropertyFromCloudFormation(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("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("logConfiguration","LogConfiguration",properties.LogConfiguration!=null?CfnClusterExecuteCommandLogConfigurationPropertyFromCloudFormation(properties.LogConfiguration):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?cfn_parse().FromCloudFormation.getString(properties.Logging):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterManagedStorageConfigurationPropertyValidator(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("fargateEphemeralStorageKmsKeyId",cdk().validateString)(properties.fargateEphemeralStorageKmsKeyId)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.wrap('supplied properties not correct for "ManagedStorageConfigurationProperty"')}function convertCfnClusterManagedStorageConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterManagedStorageConfigurationPropertyValidator(properties).assertSuccess(),{FargateEphemeralStorageKmsKeyId:cdk().stringToCloudFormation(properties.fargateEphemeralStorageKmsKeyId),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId)}):properties}function CfnClusterManagedStorageConfigurationPropertyFromCloudFormation(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("fargateEphemeralStorageKmsKeyId","FargateEphemeralStorageKmsKeyId",properties.FargateEphemeralStorageKmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.FargateEphemeralStorageKmsKeyId):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterClusterConfigurationPropertyValidator(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("executeCommandConfiguration",CfnClusterExecuteCommandConfigurationPropertyValidator)(properties.executeCommandConfiguration)),errors.collect(cdk().propertyValidator("managedStorageConfiguration",CfnClusterManagedStorageConfigurationPropertyValidator)(properties.managedStorageConfiguration)),errors.wrap('supplied properties not correct for "ClusterConfigurationProperty"')}function convertCfnClusterClusterConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterClusterConfigurationPropertyValidator(properties).assertSuccess(),{ExecuteCommandConfiguration:convertCfnClusterExecuteCommandConfigurationPropertyToCloudFormation(properties.executeCommandConfiguration),ManagedStorageConfiguration:convertCfnClusterManagedStorageConfigurationPropertyToCloudFormation(properties.managedStorageConfiguration)}):properties}function CfnClusterClusterConfigurationPropertyFromCloudFormation(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("executeCommandConfiguration","ExecuteCommandConfiguration",properties.ExecuteCommandConfiguration!=null?CfnClusterExecuteCommandConfigurationPropertyFromCloudFormation(properties.ExecuteCommandConfiguration):void 0),ret.addPropertyResult("managedStorageConfiguration","ManagedStorageConfiguration",properties.ManagedStorageConfiguration!=null?CfnClusterManagedStorageConfigurationPropertyFromCloudFormation(properties.ManagedStorageConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterServiceConnectDefaultsPropertyValidator(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("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "ServiceConnectDefaultsProperty"')}function convertCfnClusterServiceConnectDefaultsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterServiceConnectDefaultsPropertyValidator(properties).assertSuccess(),{Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnClusterServiceConnectDefaultsPropertyFromCloudFormation(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("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):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("capacityProviders",cdk().listValidator(cdk().validateString))(properties.capacityProviders)),errors.collect(cdk().propertyValidator("clusterName",cdk().validateString)(properties.clusterName)),errors.collect(cdk().propertyValidator("clusterSettings",cdk().listValidator(CfnClusterClusterSettingsPropertyValidator))(properties.clusterSettings)),errors.collect(cdk().propertyValidator("configuration",CfnClusterClusterConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("defaultCapacityProviderStrategy",cdk().listValidator(CfnClusterCapacityProviderStrategyItemPropertyValidator))(properties.defaultCapacityProviderStrategy)),errors.collect(cdk().propertyValidator("serviceConnectDefaults",CfnClusterServiceConnectDefaultsPropertyValidator)(properties.serviceConnectDefaults)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnClusterProps"')}function convertCfnClusterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPropsValidator(properties).assertSuccess(),{CapacityProviders:cdk().listMapper(cdk().stringToCloudFormation)(properties.capacityProviders),ClusterName:cdk().stringToCloudFormation(properties.clusterName),ClusterSettings:cdk().listMapper(convertCfnClusterClusterSettingsPropertyToCloudFormation)(properties.clusterSettings),Configuration:convertCfnClusterClusterConfigurationPropertyToCloudFormation(properties.configuration),DefaultCapacityProviderStrategy:cdk().listMapper(convertCfnClusterCapacityProviderStrategyItemPropertyToCloudFormation)(properties.defaultCapacityProviderStrategy),ServiceConnectDefaults:convertCfnClusterServiceConnectDefaultsPropertyToCloudFormation(properties.serviceConnectDefaults),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):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("capacityProviders","CapacityProviders",properties.CapacityProviders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CapacityProviders):void 0),ret.addPropertyResult("clusterName","ClusterName",properties.ClusterName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterName):void 0),ret.addPropertyResult("clusterSettings","ClusterSettings",properties.ClusterSettings!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterClusterSettingsPropertyFromCloudFormation)(properties.ClusterSettings):void 0),ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?CfnClusterClusterConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("defaultCapacityProviderStrategy","DefaultCapacityProviderStrategy",properties.DefaultCapacityProviderStrategy!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterCapacityProviderStrategyItemPropertyFromCloudFormation)(properties.DefaultCapacityProviderStrategy):void 0),ret.addPropertyResult("serviceConnectDefaults","ServiceConnectDefaults",properties.ServiceConnectDefaults!=null?CfnClusterServiceConnectDefaultsPropertyFromCloudFormation(properties.ServiceConnectDefaults):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClusterCapacityProviderAssociations extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnClusterCapacityProviderAssociations",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::ClusterCapacityProviderAssociations";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterCapacityProviderAssociationsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClusterCapacityProviderAssociations(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 isCfnClusterCapacityProviderAssociations(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClusterCapacityProviderAssociations.CFN_RESOURCE_TYPE_NAME}_capacityProviders;_cluster;_defaultCapacityProviderStrategy;cfnPropertyNames={capacityProviders:"CapacityProviders",cluster:"Cluster",defaultCapacityProviderStrategy:"DefaultCapacityProviderStrategy"};constructor(scope,id,props){super(scope,id,{type:CfnClusterCapacityProviderAssociations.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnClusterCapacityProviderAssociationsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClusterCapacityProviderAssociations),error}cdk().requireProperty(props,"cluster",this),cdk().requireProperty(props,"defaultCapacityProviderStrategy",this),this._capacityProviders=cdk().mapArrayInPlace(props.capacityProviders,item=>cdk().getRefProperty(item?.capacityProviderRef,"capacityProviderName")??cdk().ensureStringOrUndefined(item,"capacityProviders","ecs.ICapacityProviderRef | string")),this._cluster=cdk().getRefProperty(props.cluster?.clusterRef,"clusterArn")??cdk().getRefProperty(props.cluster?.clusterRef,"clusterName")??cdk().ensureStringOrUndefined(props.cluster,"cluster","ecs.IClusterRef | string"),this._defaultCapacityProviderStrategy=props.defaultCapacityProviderStrategy}get clusterCapacityProviderAssociationsRef(){return{cluster:this.ref}}get capacityProviders(){return this._capacityProviders}set capacityProviders(value){cdk().traceProperty(this.node,"CapacityProviders"),this._capacityProviders=value}get cluster(){return this._cluster}set cluster(value){cdk().traceProperty(this.node,"Cluster"),this._cluster=value}get defaultCapacityProviderStrategy(){return this._defaultCapacityProviderStrategy}set defaultCapacityProviderStrategy(value){cdk().traceProperty(this.node,"DefaultCapacityProviderStrategy"),this._defaultCapacityProviderStrategy=value}get cfnProperties(){return{capacityProviders:this._capacityProviders,cluster:this._cluster,defaultCapacityProviderStrategy:this._defaultCapacityProviderStrategy}}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",CfnClusterCapacityProviderAssociations.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterCapacityProviderAssociationsPropsToCloudFormation(props)}}exports.CfnClusterCapacityProviderAssociations=CfnClusterCapacityProviderAssociations;function CfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyValidator(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("base",cdk().validateNumber)(properties.base)),errors.collect(cdk().propertyValidator("capacityProvider",cdk().requiredValidator)(properties.capacityProvider)),errors.collect(cdk().propertyValidator("capacityProvider",cdk().validateString)(properties.capacityProvider)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "CapacityProviderStrategyProperty"')}function convertCfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyValidator(properties).assertSuccess(),{Base:cdk().numberToCloudFormation(properties.base),CapacityProvider:cdk().stringToCloudFormation(properties.capacityProvider),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyFromCloudFormation(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("base","Base",properties.Base!=null?cfn_parse().FromCloudFormation.getNumber(properties.Base):void 0),ret.addPropertyResult("capacityProvider","CapacityProvider",properties.CapacityProvider!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityProvider):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterCapacityProviderAssociationsPropsValidator(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("capacityProviders",cdk().listValidator(cdk().validateString))(properties.capacityProviders)),errors.collect(cdk().propertyValidator("cluster",cdk().requiredValidator)(properties.cluster)),errors.collect(cdk().propertyValidator("cluster",cdk().validateString)(properties.cluster)),errors.collect(cdk().propertyValidator("defaultCapacityProviderStrategy",cdk().requiredValidator)(properties.defaultCapacityProviderStrategy)),errors.collect(cdk().propertyValidator("defaultCapacityProviderStrategy",cdk().listValidator(CfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyValidator))(properties.defaultCapacityProviderStrategy)),errors.wrap('supplied properties not correct for "CfnClusterCapacityProviderAssociationsProps"')}function convertCfnClusterCapacityProviderAssociationsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterCapacityProviderAssociationsPropsValidator(properties).assertSuccess(),{CapacityProviders:cdk().listMapper(cdk().stringToCloudFormation)(properties.capacityProviders),Cluster:cdk().stringToCloudFormation(properties.cluster),DefaultCapacityProviderStrategy:cdk().listMapper(convertCfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyToCloudFormation)(properties.defaultCapacityProviderStrategy)}):properties}function CfnClusterCapacityProviderAssociationsPropsFromCloudFormation(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("capacityProviders","CapacityProviders",properties.CapacityProviders!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CapacityProviders):void 0),ret.addPropertyResult("cluster","Cluster",properties.Cluster!=null?cfn_parse().FromCloudFormation.getString(properties.Cluster):void 0),ret.addPropertyResult("defaultCapacityProviderStrategy","DefaultCapacityProviderStrategy",properties.DefaultCapacityProviderStrategy!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterCapacityProviderAssociationsCapacityProviderStrategyPropertyFromCloudFormation)(properties.DefaultCapacityProviderStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPrimaryTaskSet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnPrimaryTaskSet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::PrimaryTaskSet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPrimaryTaskSetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPrimaryTaskSet(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 isCfnPrimaryTaskSet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPrimaryTaskSet.CFN_RESOURCE_TYPE_NAME}_cluster;_service;_taskSetId;cfnPropertyNames={cluster:"Cluster",service:"Service",taskSetId:"TaskSetId"};constructor(scope,id,props){super(scope,id,{type:CfnPrimaryTaskSet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnPrimaryTaskSetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPrimaryTaskSet),error}cdk().requireProperty(props,"cluster",this),cdk().requireProperty(props,"service",this),cdk().requireProperty(props,"taskSetId",this),this._cluster=props.cluster,this._service=props.service,this._taskSetId=props.taskSetId}get primaryTaskSetRef(){return{cluster:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),service:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get cluster(){return this._cluster}set cluster(value){cdk().traceProperty(this.node,"Cluster"),this._cluster=value}get service(){return this._service}set service(value){cdk().traceProperty(this.node,"Service"),this._service=value}get taskSetId(){return this._taskSetId}set taskSetId(value){cdk().traceProperty(this.node,"TaskSetId"),this._taskSetId=value}get cfnProperties(){return{cluster:this._cluster,service:this._service,taskSetId:this._taskSetId}}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",CfnPrimaryTaskSet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPrimaryTaskSetPropsToCloudFormation(props)}}exports.CfnPrimaryTaskSet=CfnPrimaryTaskSet;function CfnPrimaryTaskSetPropsValidator(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("cluster",cdk().requiredValidator)(properties.cluster)),errors.collect(cdk().propertyValidator("cluster",cdk().validateString)(properties.cluster)),errors.collect(cdk().propertyValidator("service",cdk().requiredValidator)(properties.service)),errors.collect(cdk().propertyValidator("service",cdk().validateString)(properties.service)),errors.collect(cdk().propertyValidator("taskSetId",cdk().requiredValidator)(properties.taskSetId)),errors.collect(cdk().propertyValidator("taskSetId",cdk().validateString)(properties.taskSetId)),errors.wrap('supplied properties not correct for "CfnPrimaryTaskSetProps"')}function convertCfnPrimaryTaskSetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrimaryTaskSetPropsValidator(properties).assertSuccess(),{Cluster:cdk().stringToCloudFormation(properties.cluster),Service:cdk().stringToCloudFormation(properties.service),TaskSetId:cdk().stringToCloudFormation(properties.taskSetId)}):properties}function CfnPrimaryTaskSetPropsFromCloudFormation(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("cluster","Cluster",properties.Cluster!=null?cfn_parse().FromCloudFormation.getString(properties.Cluster):void 0),ret.addPropertyResult("service","Service",properties.Service!=null?cfn_parse().FromCloudFormation.getString(properties.Service):void 0),ret.addPropertyResult("taskSetId","TaskSetId",properties.TaskSetId!=null?cfn_parse().FromCloudFormation.getString(properties.TaskSetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnService extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnService",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::Service";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnServicePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnService(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 isCfnService(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnService.CFN_RESOURCE_TYPE_NAME}static arnForService(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_IServiceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForService),error}return resource.serviceRef.serviceArn}_availabilityZoneRebalancing;_capacityProviderStrategy;_cluster;_deploymentConfiguration;_deploymentController;_desiredCount;_enableEcsManagedTags;_enableExecuteCommand;_forceNewDeployment;_healthCheckGracePeriodSeconds;_launchType;_loadBalancers;_networkConfiguration;_placementConstraints;_placementStrategies;_platformVersion;_propagateTags;_role;_schedulingStrategy;_serviceConnectConfiguration;_serviceName;_serviceRegistries;tags;_tagsRaw;_taskDefinition;_volumeConfigurations;_vpcLatticeConfigurations;cfnPropertyNames={availabilityZoneRebalancing:"AvailabilityZoneRebalancing",capacityProviderStrategy:"CapacityProviderStrategy",cluster:"Cluster",deploymentConfiguration:"DeploymentConfiguration",deploymentController:"DeploymentController",desiredCount:"DesiredCount",enableEcsManagedTags:"EnableECSManagedTags",enableExecuteCommand:"EnableExecuteCommand",forceNewDeployment:"ForceNewDeployment",healthCheckGracePeriodSeconds:"HealthCheckGracePeriodSeconds",launchType:"LaunchType",loadBalancers:"LoadBalancers",networkConfiguration:"NetworkConfiguration",placementConstraints:"PlacementConstraints",placementStrategies:"PlacementStrategies",platformVersion:"PlatformVersion",propagateTags:"PropagateTags",role:"Role",schedulingStrategy:"SchedulingStrategy",serviceConnectConfiguration:"ServiceConnectConfiguration",serviceName:"ServiceName",serviceRegistries:"ServiceRegistries",tags:"Tags",taskDefinition:"TaskDefinition",volumeConfigurations:"VolumeConfigurations",vpcLatticeConfigurations:"VpcLatticeConfigurations"};constructor(scope,id,props={}){super(scope,id,{type:CfnService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnService),error}this._availabilityZoneRebalancing=props.availabilityZoneRebalancing,this._capacityProviderStrategy=props.capacityProviderStrategy,this._cluster=cdk().getRefProperty(props.cluster?.clusterRef,"clusterName")??cdk().ensureStringOrUndefined(props.cluster,"cluster","ecs.IClusterRef | string"),this._deploymentConfiguration=props.deploymentConfiguration,this._deploymentController=props.deploymentController,this._desiredCount=props.desiredCount,this._enableEcsManagedTags=props.enableEcsManagedTags,this._enableExecuteCommand=props.enableExecuteCommand,this._forceNewDeployment=props.forceNewDeployment,this._healthCheckGracePeriodSeconds=props.healthCheckGracePeriodSeconds,this._launchType=props.launchType,this._loadBalancers=props.loadBalancers,this._networkConfiguration=props.networkConfiguration,this._placementConstraints=props.placementConstraints,this._placementStrategies=props.placementStrategies,this._platformVersion=props.platformVersion,this._propagateTags=props.propagateTags,this._role=cdk().getRefProperty(props.role?.roleRef,"roleArn")??cdk().getRefProperty(props.role?.roleRef,"roleName")??cdk().ensureStringOrUndefined(props.role,"role","iam.IRoleRef | string"),this._schedulingStrategy=props.schedulingStrategy,this._serviceConnectConfiguration=props.serviceConnectConfiguration,this._serviceName=props.serviceName,this._serviceRegistries=props.serviceRegistries,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::Service",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._taskDefinition=cdk().getRefProperty(props.taskDefinition?.taskDefinitionRef,"taskDefinitionArn")??cdk().ensureStringOrUndefined(props.taskDefinition,"taskDefinition","ecs.ITaskDefinitionRef | string"),this._volumeConfigurations=props.volumeConfigurations,this._vpcLatticeConfigurations=props.vpcLatticeConfigurations}get serviceRef(){return{serviceArn:this.ref}}get availabilityZoneRebalancing(){return this._availabilityZoneRebalancing}set availabilityZoneRebalancing(value){cdk().traceProperty(this.node,"AvailabilityZoneRebalancing"),this._availabilityZoneRebalancing=value}get capacityProviderStrategy(){return this._capacityProviderStrategy}set capacityProviderStrategy(value){cdk().traceProperty(this.node,"CapacityProviderStrategy"),this._capacityProviderStrategy=value}get cluster(){return this._cluster}set cluster(value){cdk().traceProperty(this.node,"Cluster"),this._cluster=value}get deploymentConfiguration(){return this._deploymentConfiguration}set deploymentConfiguration(value){cdk().traceProperty(this.node,"DeploymentConfiguration"),this._deploymentConfiguration=value}get deploymentController(){return this._deploymentController}set deploymentController(value){cdk().traceProperty(this.node,"DeploymentController"),this._deploymentController=value}get desiredCount(){return this._desiredCount}set desiredCount(value){cdk().traceProperty(this.node,"DesiredCount"),this._desiredCount=value}get enableEcsManagedTags(){return this._enableEcsManagedTags}set enableEcsManagedTags(value){cdk().traceProperty(this.node,"EnableECSManagedTags"),this._enableEcsManagedTags=value}get enableExecuteCommand(){return this._enableExecuteCommand}set enableExecuteCommand(value){cdk().traceProperty(this.node,"EnableExecuteCommand"),this._enableExecuteCommand=value}get forceNewDeployment(){return this._forceNewDeployment}set forceNewDeployment(value){cdk().traceProperty(this.node,"ForceNewDeployment"),this._forceNewDeployment=value}get healthCheckGracePeriodSeconds(){return this._healthCheckGracePeriodSeconds}set healthCheckGracePeriodSeconds(value){cdk().traceProperty(this.node,"HealthCheckGracePeriodSeconds"),this._healthCheckGracePeriodSeconds=value}get launchType(){return this._launchType}set launchType(value){cdk().traceProperty(this.node,"LaunchType"),this._launchType=value}get loadBalancers(){return this._loadBalancers}set loadBalancers(value){cdk().traceProperty(this.node,"LoadBalancers"),this._loadBalancers=value}get networkConfiguration(){return this._networkConfiguration}set networkConfiguration(value){cdk().traceProperty(this.node,"NetworkConfiguration"),this._networkConfiguration=value}get placementConstraints(){return this._placementConstraints}set placementConstraints(value){cdk().traceProperty(this.node,"PlacementConstraints"),this._placementConstraints=value}get placementStrategies(){return this._placementStrategies}set placementStrategies(value){cdk().traceProperty(this.node,"PlacementStrategies"),this._placementStrategies=value}get platformVersion(){return this._platformVersion}set platformVersion(value){cdk().traceProperty(this.node,"PlatformVersion"),this._platformVersion=value}get propagateTags(){return this._propagateTags}set propagateTags(value){cdk().traceProperty(this.node,"PropagateTags"),this._propagateTags=value}get role(){return this._role}set role(value){cdk().traceProperty(this.node,"Role"),this._role=value}get schedulingStrategy(){return this._schedulingStrategy}set schedulingStrategy(value){cdk().traceProperty(this.node,"SchedulingStrategy"),this._schedulingStrategy=value}get serviceConnectConfiguration(){return this._serviceConnectConfiguration}set serviceConnectConfiguration(value){cdk().traceProperty(this.node,"ServiceConnectConfiguration"),this._serviceConnectConfiguration=value}get serviceName(){return this._serviceName}set serviceName(value){cdk().traceProperty(this.node,"ServiceName"),this._serviceName=value}get serviceRegistries(){return this._serviceRegistries}set serviceRegistries(value){cdk().traceProperty(this.node,"ServiceRegistries"),this._serviceRegistries=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get taskDefinition(){return this._taskDefinition}set taskDefinition(value){cdk().traceProperty(this.node,"TaskDefinition"),this._taskDefinition=value}get volumeConfigurations(){return this._volumeConfigurations}set volumeConfigurations(value){cdk().traceProperty(this.node,"VolumeConfigurations"),this._volumeConfigurations=value}get vpcLatticeConfigurations(){return this._vpcLatticeConfigurations}set vpcLatticeConfigurations(value){cdk().traceProperty(this.node,"VpcLatticeConfigurations"),this._vpcLatticeConfigurations=value}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get attrServiceArn(){return cdk().Token.asString(this.getAtt("ServiceArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{availabilityZoneRebalancing:this._availabilityZoneRebalancing,capacityProviderStrategy:this._capacityProviderStrategy,cluster:this._cluster,deploymentConfiguration:this._deploymentConfiguration,deploymentController:this._deploymentController,desiredCount:this._desiredCount,enableEcsManagedTags:this._enableEcsManagedTags,enableExecuteCommand:this._enableExecuteCommand,forceNewDeployment:this._forceNewDeployment,healthCheckGracePeriodSeconds:this._healthCheckGracePeriodSeconds,launchType:this._launchType,loadBalancers:this._loadBalancers,networkConfiguration:this._networkConfiguration,placementConstraints:this._placementConstraints,placementStrategies:this._placementStrategies,platformVersion:this._platformVersion,propagateTags:this._propagateTags,role:this._role,schedulingStrategy:this._schedulingStrategy,serviceConnectConfiguration:this._serviceConnectConfiguration,serviceName:this._serviceName,serviceRegistries:this._serviceRegistries,tags:this.tags.renderTags(),taskDefinition:this._taskDefinition,volumeConfigurations:this._volumeConfigurations,vpcLatticeConfigurations:this._vpcLatticeConfigurations}}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",CfnService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnServicePropsToCloudFormation(props)}}exports.CfnService=CfnService;function CfnServicePlacementConstraintPropertyValidator(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("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "PlacementConstraintProperty"')}function convertCfnServicePlacementConstraintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServicePlacementConstraintPropertyValidator(properties).assertSuccess(),{Expression:cdk().stringToCloudFormation(properties.expression),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnServicePlacementConstraintPropertyFromCloudFormation(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("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceAdvancedConfigurationPropertyValidator(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("alternateTargetGroupArn",cdk().requiredValidator)(properties.alternateTargetGroupArn)),errors.collect(cdk().propertyValidator("alternateTargetGroupArn",cdk().validateString)(properties.alternateTargetGroupArn)),errors.collect(cdk().propertyValidator("productionListenerRule",cdk().validateString)(properties.productionListenerRule)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("testListenerRule",cdk().validateString)(properties.testListenerRule)),errors.wrap('supplied properties not correct for "AdvancedConfigurationProperty"')}function convertCfnServiceAdvancedConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceAdvancedConfigurationPropertyValidator(properties).assertSuccess(),{AlternateTargetGroupArn:cdk().stringToCloudFormation(properties.alternateTargetGroupArn),ProductionListenerRule:cdk().stringToCloudFormation(properties.productionListenerRule),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TestListenerRule:cdk().stringToCloudFormation(properties.testListenerRule)}):properties}function CfnServiceAdvancedConfigurationPropertyFromCloudFormation(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("alternateTargetGroupArn","AlternateTargetGroupArn",properties.AlternateTargetGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.AlternateTargetGroupArn):void 0),ret.addPropertyResult("productionListenerRule","ProductionListenerRule",properties.ProductionListenerRule!=null?cfn_parse().FromCloudFormation.getString(properties.ProductionListenerRule):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("testListenerRule","TestListenerRule",properties.TestListenerRule!=null?cfn_parse().FromCloudFormation.getString(properties.TestListenerRule):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceLoadBalancerPropertyValidator(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("advancedConfiguration",CfnServiceAdvancedConfigurationPropertyValidator)(properties.advancedConfiguration)),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("loadBalancerName",cdk().validateString)(properties.loadBalancerName)),errors.collect(cdk().propertyValidator("targetGroupArn",cdk().validateString)(properties.targetGroupArn)),errors.wrap('supplied properties not correct for "LoadBalancerProperty"')}function convertCfnServiceLoadBalancerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceLoadBalancerPropertyValidator(properties).assertSuccess(),{AdvancedConfiguration:convertCfnServiceAdvancedConfigurationPropertyToCloudFormation(properties.advancedConfiguration),ContainerName:cdk().stringToCloudFormation(properties.containerName),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),LoadBalancerName:cdk().stringToCloudFormation(properties.loadBalancerName),TargetGroupArn:cdk().stringToCloudFormation(properties.targetGroupArn)}):properties}function CfnServiceLoadBalancerPropertyFromCloudFormation(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("advancedConfiguration","AdvancedConfiguration",properties.AdvancedConfiguration!=null?CfnServiceAdvancedConfigurationPropertyFromCloudFormation(properties.AdvancedConfiguration):void 0),ret.addPropertyResult("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("loadBalancerName","LoadBalancerName",properties.LoadBalancerName!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerName):void 0),ret.addPropertyResult("targetGroupArn","TargetGroupArn",properties.TargetGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyValidator(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("exact",cdk().requiredValidator)(properties.exact)),errors.collect(cdk().propertyValidator("exact",cdk().validateString)(properties.exact)),errors.wrap('supplied properties not correct for "ServiceConnectTestTrafficRulesHeaderValueProperty"')}function convertCfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyValidator(properties).assertSuccess(),{Exact:cdk().stringToCloudFormation(properties.exact)}):properties}function CfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyFromCloudFormation(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("exact","Exact",properties.Exact!=null?cfn_parse().FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectTestTrafficRulesHeaderPropertyValidator(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("value",CfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyValidator)(properties.value)),errors.wrap('supplied properties not correct for "ServiceConnectTestTrafficRulesHeaderProperty"')}function convertCfnServiceServiceConnectTestTrafficRulesHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectTestTrafficRulesHeaderPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:convertCfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyToCloudFormation(properties.value)}):properties}function CfnServiceServiceConnectTestTrafficRulesHeaderPropertyFromCloudFormation(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("value","Value",properties.Value!=null?CfnServiceServiceConnectTestTrafficRulesHeaderValuePropertyFromCloudFormation(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectTestTrafficRulesPropertyValidator(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("header",cdk().requiredValidator)(properties.header)),errors.collect(cdk().propertyValidator("header",CfnServiceServiceConnectTestTrafficRulesHeaderPropertyValidator)(properties.header)),errors.wrap('supplied properties not correct for "ServiceConnectTestTrafficRulesProperty"')}function convertCfnServiceServiceConnectTestTrafficRulesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectTestTrafficRulesPropertyValidator(properties).assertSuccess(),{Header:convertCfnServiceServiceConnectTestTrafficRulesHeaderPropertyToCloudFormation(properties.header)}):properties}function CfnServiceServiceConnectTestTrafficRulesPropertyFromCloudFormation(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("header","Header",properties.Header!=null?CfnServiceServiceConnectTestTrafficRulesHeaderPropertyFromCloudFormation(properties.Header):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectClientAliasPropertyValidator(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("dnsName",cdk().validateString)(properties.dnsName)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("testTrafficRules",CfnServiceServiceConnectTestTrafficRulesPropertyValidator)(properties.testTrafficRules)),errors.wrap('supplied properties not correct for "ServiceConnectClientAliasProperty"')}function convertCfnServiceServiceConnectClientAliasPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectClientAliasPropertyValidator(properties).assertSuccess(),{DnsName:cdk().stringToCloudFormation(properties.dnsName),Port:cdk().numberToCloudFormation(properties.port),TestTrafficRules:convertCfnServiceServiceConnectTestTrafficRulesPropertyToCloudFormation(properties.testTrafficRules)}):properties}function CfnServiceServiceConnectClientAliasPropertyFromCloudFormation(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("dnsName","DnsName",properties.DnsName!=null?cfn_parse().FromCloudFormation.getString(properties.DnsName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("testTrafficRules","TestTrafficRules",properties.TestTrafficRules!=null?CfnServiceServiceConnectTestTrafficRulesPropertyFromCloudFormation(properties.TestTrafficRules):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceTimeoutConfigurationPropertyValidator(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("idleTimeoutSeconds",cdk().validateNumber)(properties.idleTimeoutSeconds)),errors.collect(cdk().propertyValidator("perRequestTimeoutSeconds",cdk().validateNumber)(properties.perRequestTimeoutSeconds)),errors.wrap('supplied properties not correct for "TimeoutConfigurationProperty"')}function convertCfnServiceTimeoutConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceTimeoutConfigurationPropertyValidator(properties).assertSuccess(),{IdleTimeoutSeconds:cdk().numberToCloudFormation(properties.idleTimeoutSeconds),PerRequestTimeoutSeconds:cdk().numberToCloudFormation(properties.perRequestTimeoutSeconds)}):properties}function CfnServiceTimeoutConfigurationPropertyFromCloudFormation(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("idleTimeoutSeconds","IdleTimeoutSeconds",properties.IdleTimeoutSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.IdleTimeoutSeconds):void 0),ret.addPropertyResult("perRequestTimeoutSeconds","PerRequestTimeoutSeconds",properties.PerRequestTimeoutSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.PerRequestTimeoutSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectTlsCertificateAuthorityPropertyValidator(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("awsPcaAuthorityArn",cdk().validateString)(properties.awsPcaAuthorityArn)),errors.wrap('supplied properties not correct for "ServiceConnectTlsCertificateAuthorityProperty"')}function convertCfnServiceServiceConnectTlsCertificateAuthorityPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectTlsCertificateAuthorityPropertyValidator(properties).assertSuccess(),{AwsPcaAuthorityArn:cdk().stringToCloudFormation(properties.awsPcaAuthorityArn)}):properties}function CfnServiceServiceConnectTlsCertificateAuthorityPropertyFromCloudFormation(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("awsPcaAuthorityArn","AwsPcaAuthorityArn",properties.AwsPcaAuthorityArn!=null?cfn_parse().FromCloudFormation.getString(properties.AwsPcaAuthorityArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectTlsConfigurationPropertyValidator(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("issuerCertificateAuthority",cdk().requiredValidator)(properties.issuerCertificateAuthority)),errors.collect(cdk().propertyValidator("issuerCertificateAuthority",CfnServiceServiceConnectTlsCertificateAuthorityPropertyValidator)(properties.issuerCertificateAuthority)),errors.collect(cdk().propertyValidator("kmsKey",cdk().validateString)(properties.kmsKey)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "ServiceConnectTlsConfigurationProperty"')}function convertCfnServiceServiceConnectTlsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectTlsConfigurationPropertyValidator(properties).assertSuccess(),{IssuerCertificateAuthority:convertCfnServiceServiceConnectTlsCertificateAuthorityPropertyToCloudFormation(properties.issuerCertificateAuthority),KmsKey:cdk().stringToCloudFormation(properties.kmsKey),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnServiceServiceConnectTlsConfigurationPropertyFromCloudFormation(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("issuerCertificateAuthority","IssuerCertificateAuthority",properties.IssuerCertificateAuthority!=null?CfnServiceServiceConnectTlsCertificateAuthorityPropertyFromCloudFormation(properties.IssuerCertificateAuthority):void 0),ret.addPropertyResult("kmsKey","KmsKey",properties.KmsKey!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKey):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectServicePropertyValidator(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("clientAliases",cdk().listValidator(CfnServiceServiceConnectClientAliasPropertyValidator))(properties.clientAliases)),errors.collect(cdk().propertyValidator("discoveryName",cdk().validateString)(properties.discoveryName)),errors.collect(cdk().propertyValidator("ingressPortOverride",cdk().validateNumber)(properties.ingressPortOverride)),errors.collect(cdk().propertyValidator("portName",cdk().requiredValidator)(properties.portName)),errors.collect(cdk().propertyValidator("portName",cdk().validateString)(properties.portName)),errors.collect(cdk().propertyValidator("timeout",CfnServiceTimeoutConfigurationPropertyValidator)(properties.timeout)),errors.collect(cdk().propertyValidator("tls",CfnServiceServiceConnectTlsConfigurationPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "ServiceConnectServiceProperty"')}function convertCfnServiceServiceConnectServicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectServicePropertyValidator(properties).assertSuccess(),{ClientAliases:cdk().listMapper(convertCfnServiceServiceConnectClientAliasPropertyToCloudFormation)(properties.clientAliases),DiscoveryName:cdk().stringToCloudFormation(properties.discoveryName),IngressPortOverride:cdk().numberToCloudFormation(properties.ingressPortOverride),PortName:cdk().stringToCloudFormation(properties.portName),Timeout:convertCfnServiceTimeoutConfigurationPropertyToCloudFormation(properties.timeout),Tls:convertCfnServiceServiceConnectTlsConfigurationPropertyToCloudFormation(properties.tls)}):properties}function CfnServiceServiceConnectServicePropertyFromCloudFormation(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("clientAliases","ClientAliases",properties.ClientAliases!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceServiceConnectClientAliasPropertyFromCloudFormation)(properties.ClientAliases):void 0),ret.addPropertyResult("discoveryName","DiscoveryName",properties.DiscoveryName!=null?cfn_parse().FromCloudFormation.getString(properties.DiscoveryName):void 0),ret.addPropertyResult("ingressPortOverride","IngressPortOverride",properties.IngressPortOverride!=null?cfn_parse().FromCloudFormation.getNumber(properties.IngressPortOverride):void 0),ret.addPropertyResult("portName","PortName",properties.PortName!=null?cfn_parse().FromCloudFormation.getString(properties.PortName):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnServiceTimeoutConfigurationPropertyFromCloudFormation(properties.Timeout):void 0),ret.addPropertyResult("tls","Tls",properties.Tls!=null?CfnServiceServiceConnectTlsConfigurationPropertyFromCloudFormation(properties.Tls):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceSecretPropertyValidator(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("valueFrom",cdk().requiredValidator)(properties.valueFrom)),errors.collect(cdk().propertyValidator("valueFrom",cdk().validateString)(properties.valueFrom)),errors.wrap('supplied properties not correct for "SecretProperty"')}function convertCfnServiceSecretPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceSecretPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ValueFrom:cdk().stringToCloudFormation(properties.valueFrom)}):properties}function CfnServiceSecretPropertyFromCloudFormation(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("valueFrom","ValueFrom",properties.ValueFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValueFrom):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceLogConfigurationPropertyValidator(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("logDriver",cdk().validateString)(properties.logDriver)),errors.collect(cdk().propertyValidator("options",cdk().hashValidator(cdk().validateString))(properties.options)),errors.collect(cdk().propertyValidator("secretOptions",cdk().listValidator(CfnServiceSecretPropertyValidator))(properties.secretOptions)),errors.wrap('supplied properties not correct for "LogConfigurationProperty"')}function convertCfnServiceLogConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceLogConfigurationPropertyValidator(properties).assertSuccess(),{LogDriver:cdk().stringToCloudFormation(properties.logDriver),Options:cdk().hashMapper(cdk().stringToCloudFormation)(properties.options),SecretOptions:cdk().listMapper(convertCfnServiceSecretPropertyToCloudFormation)(properties.secretOptions)}):properties}function CfnServiceLogConfigurationPropertyFromCloudFormation(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("logDriver","LogDriver",properties.LogDriver!=null?cfn_parse().FromCloudFormation.getString(properties.LogDriver):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Options):void 0),ret.addPropertyResult("secretOptions","SecretOptions",properties.SecretOptions!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceSecretPropertyFromCloudFormation)(properties.SecretOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectAccessLogConfigurationPropertyValidator(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("format",cdk().requiredValidator)(properties.format)),errors.collect(cdk().propertyValidator("format",cdk().validateString)(properties.format)),errors.collect(cdk().propertyValidator("includeQueryParameters",cdk().validateString)(properties.includeQueryParameters)),errors.wrap('supplied properties not correct for "ServiceConnectAccessLogConfigurationProperty"')}function convertCfnServiceServiceConnectAccessLogConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectAccessLogConfigurationPropertyValidator(properties).assertSuccess(),{Format:cdk().stringToCloudFormation(properties.format),IncludeQueryParameters:cdk().stringToCloudFormation(properties.includeQueryParameters)}):properties}function CfnServiceServiceConnectAccessLogConfigurationPropertyFromCloudFormation(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("format","Format",properties.Format!=null?cfn_parse().FromCloudFormation.getString(properties.Format):void 0),ret.addPropertyResult("includeQueryParameters","IncludeQueryParameters",properties.IncludeQueryParameters!=null?cfn_parse().FromCloudFormation.getString(properties.IncludeQueryParameters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceConnectConfigurationPropertyValidator(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("accessLogConfiguration",CfnServiceServiceConnectAccessLogConfigurationPropertyValidator)(properties.accessLogConfiguration)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("logConfiguration",CfnServiceLogConfigurationPropertyValidator)(properties.logConfiguration)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("services",cdk().listValidator(CfnServiceServiceConnectServicePropertyValidator))(properties.services)),errors.wrap('supplied properties not correct for "ServiceConnectConfigurationProperty"')}function convertCfnServiceServiceConnectConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceConnectConfigurationPropertyValidator(properties).assertSuccess(),{AccessLogConfiguration:convertCfnServiceServiceConnectAccessLogConfigurationPropertyToCloudFormation(properties.accessLogConfiguration),Enabled:cdk().booleanToCloudFormation(properties.enabled),LogConfiguration:convertCfnServiceLogConfigurationPropertyToCloudFormation(properties.logConfiguration),Namespace:cdk().stringToCloudFormation(properties.namespace),Services:cdk().listMapper(convertCfnServiceServiceConnectServicePropertyToCloudFormation)(properties.services)}):properties}function CfnServiceServiceConnectConfigurationPropertyFromCloudFormation(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("accessLogConfiguration","AccessLogConfiguration",properties.AccessLogConfiguration!=null?CfnServiceServiceConnectAccessLogConfigurationPropertyFromCloudFormation(properties.AccessLogConfiguration):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("logConfiguration","LogConfiguration",properties.LogConfiguration!=null?CfnServiceLogConfigurationPropertyFromCloudFormation(properties.LogConfiguration):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("services","Services",properties.Services!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceServiceConnectServicePropertyFromCloudFormation)(properties.Services):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServicePlacementStrategyPropertyValidator(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("field",cdk().validateString)(properties.field)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "PlacementStrategyProperty"')}function convertCfnServicePlacementStrategyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServicePlacementStrategyPropertyValidator(properties).assertSuccess(),{Field:cdk().stringToCloudFormation(properties.field),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnServicePlacementStrategyPropertyFromCloudFormation(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("field","Field",properties.Field!=null?cfn_parse().FromCloudFormation.getString(properties.Field):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceDeploymentControllerPropertyValidator(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("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "DeploymentControllerProperty"')}function convertCfnServiceDeploymentControllerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceDeploymentControllerPropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnServiceDeploymentControllerPropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceRegistryPropertyValidator(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("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("registryArn",cdk().validateString)(properties.registryArn)),errors.wrap('supplied properties not correct for "ServiceRegistryProperty"')}function convertCfnServiceServiceRegistryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceRegistryPropertyValidator(properties).assertSuccess(),{ContainerName:cdk().stringToCloudFormation(properties.containerName),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),Port:cdk().numberToCloudFormation(properties.port),RegistryArn:cdk().stringToCloudFormation(properties.registryArn)}):properties}function CfnServiceServiceRegistryPropertyFromCloudFormation(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("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("registryArn","RegistryArn",properties.RegistryArn!=null?cfn_parse().FromCloudFormation.getString(properties.RegistryArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceCapacityProviderStrategyItemPropertyValidator(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("base",cdk().validateNumber)(properties.base)),errors.collect(cdk().propertyValidator("capacityProvider",cdk().validateString)(properties.capacityProvider)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "CapacityProviderStrategyItemProperty"')}function convertCfnServiceCapacityProviderStrategyItemPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceCapacityProviderStrategyItemPropertyValidator(properties).assertSuccess(),{Base:cdk().numberToCloudFormation(properties.base),CapacityProvider:cdk().stringToCloudFormation(properties.capacityProvider),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnServiceCapacityProviderStrategyItemPropertyFromCloudFormation(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("base","Base",properties.Base!=null?cfn_parse().FromCloudFormation.getNumber(properties.Base):void 0),ret.addPropertyResult("capacityProvider","CapacityProvider",properties.CapacityProvider!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityProvider):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceAwsVpcConfigurationPropertyValidator(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("assignPublicIp",cdk().validateString)(properties.assignPublicIp)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("subnets",cdk().listValidator(cdk().validateString))(properties.subnets)),errors.wrap('supplied properties not correct for "AwsVpcConfigurationProperty"')}function convertCfnServiceAwsVpcConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceAwsVpcConfigurationPropertyValidator(properties).assertSuccess(),{AssignPublicIp:cdk().stringToCloudFormation(properties.assignPublicIp),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),Subnets:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnets)}):properties}function CfnServiceAwsVpcConfigurationPropertyFromCloudFormation(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("assignPublicIp","AssignPublicIp",properties.AssignPublicIp!=null?cfn_parse().FromCloudFormation.getString(properties.AssignPublicIp):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("subnets","Subnets",properties.Subnets!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Subnets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceNetworkConfigurationPropertyValidator(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("awsvpcConfiguration",CfnServiceAwsVpcConfigurationPropertyValidator)(properties.awsvpcConfiguration)),errors.wrap('supplied properties not correct for "NetworkConfigurationProperty"')}function convertCfnServiceNetworkConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceNetworkConfigurationPropertyValidator(properties).assertSuccess(),{AwsvpcConfiguration:convertCfnServiceAwsVpcConfigurationPropertyToCloudFormation(properties.awsvpcConfiguration)}):properties}function CfnServiceNetworkConfigurationPropertyFromCloudFormation(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("awsvpcConfiguration","AwsvpcConfiguration",properties.AwsvpcConfiguration!=null?CfnServiceAwsVpcConfigurationPropertyFromCloudFormation(properties.AwsvpcConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceDeploymentAlarmsPropertyValidator(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("alarmNames",cdk().requiredValidator)(properties.alarmNames)),errors.collect(cdk().propertyValidator("alarmNames",cdk().listValidator(cdk().validateString))(properties.alarmNames)),errors.collect(cdk().propertyValidator("enable",cdk().requiredValidator)(properties.enable)),errors.collect(cdk().propertyValidator("enable",cdk().validateBoolean)(properties.enable)),errors.collect(cdk().propertyValidator("rollback",cdk().requiredValidator)(properties.rollback)),errors.collect(cdk().propertyValidator("rollback",cdk().validateBoolean)(properties.rollback)),errors.wrap('supplied properties not correct for "DeploymentAlarmsProperty"')}function convertCfnServiceDeploymentAlarmsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceDeploymentAlarmsPropertyValidator(properties).assertSuccess(),{AlarmNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.alarmNames),Enable:cdk().booleanToCloudFormation(properties.enable),Rollback:cdk().booleanToCloudFormation(properties.rollback)}):properties}function CfnServiceDeploymentAlarmsPropertyFromCloudFormation(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("alarmNames","AlarmNames",properties.AlarmNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AlarmNames):void 0),ret.addPropertyResult("enable","Enable",properties.Enable!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enable):void 0),ret.addPropertyResult("rollback","Rollback",properties.Rollback!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Rollback):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceDeploymentCircuitBreakerPropertyValidator(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("enable",cdk().requiredValidator)(properties.enable)),errors.collect(cdk().propertyValidator("enable",cdk().validateBoolean)(properties.enable)),errors.collect(cdk().propertyValidator("rollback",cdk().requiredValidator)(properties.rollback)),errors.collect(cdk().propertyValidator("rollback",cdk().validateBoolean)(properties.rollback)),errors.wrap('supplied properties not correct for "DeploymentCircuitBreakerProperty"')}function convertCfnServiceDeploymentCircuitBreakerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceDeploymentCircuitBreakerPropertyValidator(properties).assertSuccess(),{Enable:cdk().booleanToCloudFormation(properties.enable),Rollback:cdk().booleanToCloudFormation(properties.rollback)}):properties}function CfnServiceDeploymentCircuitBreakerPropertyFromCloudFormation(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("enable","Enable",properties.Enable!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enable):void 0),ret.addPropertyResult("rollback","Rollback",properties.Rollback!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Rollback):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceCanaryConfigurationPropertyValidator(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("canaryBakeTimeInMinutes",cdk().validateNumber)(properties.canaryBakeTimeInMinutes)),errors.collect(cdk().propertyValidator("canaryPercent",cdk().validateNumber)(properties.canaryPercent)),errors.wrap('supplied properties not correct for "CanaryConfigurationProperty"')}function convertCfnServiceCanaryConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceCanaryConfigurationPropertyValidator(properties).assertSuccess(),{CanaryBakeTimeInMinutes:cdk().numberToCloudFormation(properties.canaryBakeTimeInMinutes),CanaryPercent:cdk().numberToCloudFormation(properties.canaryPercent)}):properties}function CfnServiceCanaryConfigurationPropertyFromCloudFormation(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("canaryBakeTimeInMinutes","CanaryBakeTimeInMinutes",properties.CanaryBakeTimeInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.CanaryBakeTimeInMinutes):void 0),ret.addPropertyResult("canaryPercent","CanaryPercent",properties.CanaryPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.CanaryPercent):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceDeploymentLifecycleHookPropertyValidator(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("hookDetails",cdk().unionValidator(cdk().validateString,cdk().validateObject))(properties.hookDetails)),errors.collect(cdk().propertyValidator("hookTargetArn",cdk().requiredValidator)(properties.hookTargetArn)),errors.collect(cdk().propertyValidator("hookTargetArn",cdk().validateString)(properties.hookTargetArn)),errors.collect(cdk().propertyValidator("lifecycleStages",cdk().requiredValidator)(properties.lifecycleStages)),errors.collect(cdk().propertyValidator("lifecycleStages",cdk().listValidator(cdk().validateString))(properties.lifecycleStages)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "DeploymentLifecycleHookProperty"')}function convertCfnServiceDeploymentLifecycleHookPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceDeploymentLifecycleHookPropertyValidator(properties).assertSuccess(),{HookDetails:cdk().unionMapper([cdk().validateString,cdk().validateObject],[cdk().stringToCloudFormation,cdk().objectToCloudFormation])(properties.hookDetails),HookTargetArn:cdk().stringToCloudFormation(properties.hookTargetArn),LifecycleStages:cdk().listMapper(cdk().stringToCloudFormation)(properties.lifecycleStages),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnServiceDeploymentLifecycleHookPropertyFromCloudFormation(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("hookDetails","HookDetails",properties.HookDetails!=null?cfn_parse().FromCloudFormation.getTypeUnion([cdk().validateString,cdk().validateObject],[cfn_parse().FromCloudFormation.getString,cfn_parse().FromCloudFormation.getAny])(properties.HookDetails):void 0),ret.addPropertyResult("hookTargetArn","HookTargetArn",properties.HookTargetArn!=null?cfn_parse().FromCloudFormation.getString(properties.HookTargetArn):void 0),ret.addPropertyResult("lifecycleStages","LifecycleStages",properties.LifecycleStages!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LifecycleStages):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceLinearConfigurationPropertyValidator(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("stepBakeTimeInMinutes",cdk().validateNumber)(properties.stepBakeTimeInMinutes)),errors.collect(cdk().propertyValidator("stepPercent",cdk().validateNumber)(properties.stepPercent)),errors.wrap('supplied properties not correct for "LinearConfigurationProperty"')}function convertCfnServiceLinearConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceLinearConfigurationPropertyValidator(properties).assertSuccess(),{StepBakeTimeInMinutes:cdk().numberToCloudFormation(properties.stepBakeTimeInMinutes),StepPercent:cdk().numberToCloudFormation(properties.stepPercent)}):properties}function CfnServiceLinearConfigurationPropertyFromCloudFormation(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("stepBakeTimeInMinutes","StepBakeTimeInMinutes",properties.StepBakeTimeInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.StepBakeTimeInMinutes):void 0),ret.addPropertyResult("stepPercent","StepPercent",properties.StepPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.StepPercent):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceDeploymentConfigurationPropertyValidator(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("alarms",CfnServiceDeploymentAlarmsPropertyValidator)(properties.alarms)),errors.collect(cdk().propertyValidator("bakeTimeInMinutes",cdk().validateNumber)(properties.bakeTimeInMinutes)),errors.collect(cdk().propertyValidator("canaryConfiguration",CfnServiceCanaryConfigurationPropertyValidator)(properties.canaryConfiguration)),errors.collect(cdk().propertyValidator("deploymentCircuitBreaker",CfnServiceDeploymentCircuitBreakerPropertyValidator)(properties.deploymentCircuitBreaker)),errors.collect(cdk().propertyValidator("lifecycleHooks",cdk().listValidator(CfnServiceDeploymentLifecycleHookPropertyValidator))(properties.lifecycleHooks)),errors.collect(cdk().propertyValidator("linearConfiguration",CfnServiceLinearConfigurationPropertyValidator)(properties.linearConfiguration)),errors.collect(cdk().propertyValidator("maximumPercent",cdk().validateNumber)(properties.maximumPercent)),errors.collect(cdk().propertyValidator("minimumHealthyPercent",cdk().validateNumber)(properties.minimumHealthyPercent)),errors.collect(cdk().propertyValidator("strategy",cdk().validateString)(properties.strategy)),errors.wrap('supplied properties not correct for "DeploymentConfigurationProperty"')}function convertCfnServiceDeploymentConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceDeploymentConfigurationPropertyValidator(properties).assertSuccess(),{Alarms:convertCfnServiceDeploymentAlarmsPropertyToCloudFormation(properties.alarms),BakeTimeInMinutes:cdk().numberToCloudFormation(properties.bakeTimeInMinutes),CanaryConfiguration:convertCfnServiceCanaryConfigurationPropertyToCloudFormation(properties.canaryConfiguration),DeploymentCircuitBreaker:convertCfnServiceDeploymentCircuitBreakerPropertyToCloudFormation(properties.deploymentCircuitBreaker),LifecycleHooks:cdk().listMapper(convertCfnServiceDeploymentLifecycleHookPropertyToCloudFormation)(properties.lifecycleHooks),LinearConfiguration:convertCfnServiceLinearConfigurationPropertyToCloudFormation(properties.linearConfiguration),MaximumPercent:cdk().numberToCloudFormation(properties.maximumPercent),MinimumHealthyPercent:cdk().numberToCloudFormation(properties.minimumHealthyPercent),Strategy:cdk().stringToCloudFormation(properties.strategy)}):properties}function CfnServiceDeploymentConfigurationPropertyFromCloudFormation(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("alarms","Alarms",properties.Alarms!=null?CfnServiceDeploymentAlarmsPropertyFromCloudFormation(properties.Alarms):void 0),ret.addPropertyResult("bakeTimeInMinutes","BakeTimeInMinutes",properties.BakeTimeInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.BakeTimeInMinutes):void 0),ret.addPropertyResult("canaryConfiguration","CanaryConfiguration",properties.CanaryConfiguration!=null?CfnServiceCanaryConfigurationPropertyFromCloudFormation(properties.CanaryConfiguration):void 0),ret.addPropertyResult("deploymentCircuitBreaker","DeploymentCircuitBreaker",properties.DeploymentCircuitBreaker!=null?CfnServiceDeploymentCircuitBreakerPropertyFromCloudFormation(properties.DeploymentCircuitBreaker):void 0),ret.addPropertyResult("lifecycleHooks","LifecycleHooks",properties.LifecycleHooks!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceDeploymentLifecycleHookPropertyFromCloudFormation)(properties.LifecycleHooks):void 0),ret.addPropertyResult("linearConfiguration","LinearConfiguration",properties.LinearConfiguration!=null?CfnServiceLinearConfigurationPropertyFromCloudFormation(properties.LinearConfiguration):void 0),ret.addPropertyResult("maximumPercent","MaximumPercent",properties.MaximumPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumPercent):void 0),ret.addPropertyResult("minimumHealthyPercent","MinimumHealthyPercent",properties.MinimumHealthyPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumHealthyPercent):void 0),ret.addPropertyResult("strategy","Strategy",properties.Strategy!=null?cfn_parse().FromCloudFormation.getString(properties.Strategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceEBSTagSpecificationPropertyValidator(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("propagateTags",cdk().validateString)(properties.propagateTags)),errors.collect(cdk().propertyValidator("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "EBSTagSpecificationProperty"')}function convertCfnServiceEBSTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceEBSTagSpecificationPropertyValidator(properties).assertSuccess(),{PropagateTags:cdk().stringToCloudFormation(properties.propagateTags),ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnServiceEBSTagSpecificationPropertyFromCloudFormation(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("propagateTags","PropagateTags",properties.PropagateTags!=null?cfn_parse().FromCloudFormation.getString(properties.PropagateTags):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceManagedEBSVolumeConfigurationPropertyValidator(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("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("filesystemType",cdk().validateString)(properties.filesystemType)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("sizeInGiB",cdk().validateNumber)(properties.sizeInGiB)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnServiceEBSTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeInitializationRate",cdk().validateNumber)(properties.volumeInitializationRate)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "ServiceManagedEBSVolumeConfigurationProperty"')}function convertCfnServiceServiceManagedEBSVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceManagedEBSVolumeConfigurationPropertyValidator(properties).assertSuccess(),{Encrypted:cdk().booleanToCloudFormation(properties.encrypted),FilesystemType:cdk().stringToCloudFormation(properties.filesystemType),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SizeInGiB:cdk().numberToCloudFormation(properties.sizeInGiB),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),TagSpecifications:cdk().listMapper(convertCfnServiceEBSTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeInitializationRate:cdk().numberToCloudFormation(properties.volumeInitializationRate),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnServiceServiceManagedEBSVolumeConfigurationPropertyFromCloudFormation(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("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("filesystemType","FilesystemType",properties.FilesystemType!=null?cfn_parse().FromCloudFormation.getString(properties.FilesystemType):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("sizeInGiB","SizeInGiB",properties.SizeInGiB!=null?cfn_parse().FromCloudFormation.getNumber(properties.SizeInGiB):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceEBSTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeInitializationRate","VolumeInitializationRate",properties.VolumeInitializationRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeInitializationRate):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceServiceVolumeConfigurationPropertyValidator(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("managedEbsVolume",CfnServiceServiceManagedEBSVolumeConfigurationPropertyValidator)(properties.managedEbsVolume)),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 "ServiceVolumeConfigurationProperty"')}function convertCfnServiceServiceVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceServiceVolumeConfigurationPropertyValidator(properties).assertSuccess(),{ManagedEBSVolume:convertCfnServiceServiceManagedEBSVolumeConfigurationPropertyToCloudFormation(properties.managedEbsVolume),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnServiceServiceVolumeConfigurationPropertyFromCloudFormation(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("managedEbsVolume","ManagedEBSVolume",properties.ManagedEBSVolume!=null?CfnServiceServiceManagedEBSVolumeConfigurationPropertyFromCloudFormation(properties.ManagedEBSVolume):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceForceNewDeploymentPropertyValidator(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("enableForceNewDeployment",cdk().requiredValidator)(properties.enableForceNewDeployment)),errors.collect(cdk().propertyValidator("enableForceNewDeployment",cdk().validateBoolean)(properties.enableForceNewDeployment)),errors.collect(cdk().propertyValidator("forceNewDeploymentNonce",cdk().validateString)(properties.forceNewDeploymentNonce)),errors.wrap('supplied properties not correct for "ForceNewDeploymentProperty"')}function convertCfnServiceForceNewDeploymentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceForceNewDeploymentPropertyValidator(properties).assertSuccess(),{EnableForceNewDeployment:cdk().booleanToCloudFormation(properties.enableForceNewDeployment),ForceNewDeploymentNonce:cdk().stringToCloudFormation(properties.forceNewDeploymentNonce)}):properties}function CfnServiceForceNewDeploymentPropertyFromCloudFormation(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("enableForceNewDeployment","EnableForceNewDeployment",properties.EnableForceNewDeployment!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableForceNewDeployment):void 0),ret.addPropertyResult("forceNewDeploymentNonce","ForceNewDeploymentNonce",properties.ForceNewDeploymentNonce!=null?cfn_parse().FromCloudFormation.getString(properties.ForceNewDeploymentNonce):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServiceVpcLatticeConfigurationPropertyValidator(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("portName",cdk().requiredValidator)(properties.portName)),errors.collect(cdk().propertyValidator("portName",cdk().validateString)(properties.portName)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("targetGroupArn",cdk().requiredValidator)(properties.targetGroupArn)),errors.collect(cdk().propertyValidator("targetGroupArn",cdk().validateString)(properties.targetGroupArn)),errors.wrap('supplied properties not correct for "VpcLatticeConfigurationProperty"')}function convertCfnServiceVpcLatticeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServiceVpcLatticeConfigurationPropertyValidator(properties).assertSuccess(),{PortName:cdk().stringToCloudFormation(properties.portName),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TargetGroupArn:cdk().stringToCloudFormation(properties.targetGroupArn)}):properties}function CfnServiceVpcLatticeConfigurationPropertyFromCloudFormation(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("portName","PortName",properties.PortName!=null?cfn_parse().FromCloudFormation.getString(properties.PortName):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("targetGroupArn","TargetGroupArn",properties.TargetGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnServicePropsValidator(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("availabilityZoneRebalancing",cdk().validateString)(properties.availabilityZoneRebalancing)),errors.collect(cdk().propertyValidator("capacityProviderStrategy",cdk().listValidator(CfnServiceCapacityProviderStrategyItemPropertyValidator))(properties.capacityProviderStrategy)),errors.collect(cdk().propertyValidator("cluster",cdk().validateString)(properties.cluster)),errors.collect(cdk().propertyValidator("deploymentConfiguration",CfnServiceDeploymentConfigurationPropertyValidator)(properties.deploymentConfiguration)),errors.collect(cdk().propertyValidator("deploymentController",CfnServiceDeploymentControllerPropertyValidator)(properties.deploymentController)),errors.collect(cdk().propertyValidator("desiredCount",cdk().validateNumber)(properties.desiredCount)),errors.collect(cdk().propertyValidator("enableEcsManagedTags",cdk().validateBoolean)(properties.enableEcsManagedTags)),errors.collect(cdk().propertyValidator("enableExecuteCommand",cdk().validateBoolean)(properties.enableExecuteCommand)),errors.collect(cdk().propertyValidator("forceNewDeployment",CfnServiceForceNewDeploymentPropertyValidator)(properties.forceNewDeployment)),errors.collect(cdk().propertyValidator("healthCheckGracePeriodSeconds",cdk().validateNumber)(properties.healthCheckGracePeriodSeconds)),errors.collect(cdk().propertyValidator("launchType",cdk().validateString)(properties.launchType)),errors.collect(cdk().propertyValidator("loadBalancers",cdk().listValidator(CfnServiceLoadBalancerPropertyValidator))(properties.loadBalancers)),errors.collect(cdk().propertyValidator("networkConfiguration",CfnServiceNetworkConfigurationPropertyValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("placementConstraints",cdk().listValidator(CfnServicePlacementConstraintPropertyValidator))(properties.placementConstraints)),errors.collect(cdk().propertyValidator("placementStrategies",cdk().listValidator(CfnServicePlacementStrategyPropertyValidator))(properties.placementStrategies)),errors.collect(cdk().propertyValidator("platformVersion",cdk().validateString)(properties.platformVersion)),errors.collect(cdk().propertyValidator("propagateTags",cdk().validateString)(properties.propagateTags)),errors.collect(cdk().propertyValidator("role",cdk().validateString)(properties.role)),errors.collect(cdk().propertyValidator("schedulingStrategy",cdk().validateString)(properties.schedulingStrategy)),errors.collect(cdk().propertyValidator("serviceConnectConfiguration",CfnServiceServiceConnectConfigurationPropertyValidator)(properties.serviceConnectConfiguration)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("serviceRegistries",cdk().listValidator(CfnServiceServiceRegistryPropertyValidator))(properties.serviceRegistries)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("taskDefinition",cdk().validateString)(properties.taskDefinition)),errors.collect(cdk().propertyValidator("volumeConfigurations",cdk().listValidator(CfnServiceServiceVolumeConfigurationPropertyValidator))(properties.volumeConfigurations)),errors.collect(cdk().propertyValidator("vpcLatticeConfigurations",cdk().listValidator(CfnServiceVpcLatticeConfigurationPropertyValidator))(properties.vpcLatticeConfigurations)),errors.wrap('supplied properties not correct for "CfnServiceProps"')}function convertCfnServicePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnServicePropsValidator(properties).assertSuccess(),{AvailabilityZoneRebalancing:cdk().stringToCloudFormation(properties.availabilityZoneRebalancing),CapacityProviderStrategy:cdk().listMapper(convertCfnServiceCapacityProviderStrategyItemPropertyToCloudFormation)(properties.capacityProviderStrategy),Cluster:cdk().stringToCloudFormation(properties.cluster),DeploymentConfiguration:convertCfnServiceDeploymentConfigurationPropertyToCloudFormation(properties.deploymentConfiguration),DeploymentController:convertCfnServiceDeploymentControllerPropertyToCloudFormation(properties.deploymentController),DesiredCount:cdk().numberToCloudFormation(properties.desiredCount),EnableECSManagedTags:cdk().booleanToCloudFormation(properties.enableEcsManagedTags),EnableExecuteCommand:cdk().booleanToCloudFormation(properties.enableExecuteCommand),ForceNewDeployment:convertCfnServiceForceNewDeploymentPropertyToCloudFormation(properties.forceNewDeployment),HealthCheckGracePeriodSeconds:cdk().numberToCloudFormation(properties.healthCheckGracePeriodSeconds),LaunchType:cdk().stringToCloudFormation(properties.launchType),LoadBalancers:cdk().listMapper(convertCfnServiceLoadBalancerPropertyToCloudFormation)(properties.loadBalancers),NetworkConfiguration:convertCfnServiceNetworkConfigurationPropertyToCloudFormation(properties.networkConfiguration),PlacementConstraints:cdk().listMapper(convertCfnServicePlacementConstraintPropertyToCloudFormation)(properties.placementConstraints),PlacementStrategies:cdk().listMapper(convertCfnServicePlacementStrategyPropertyToCloudFormation)(properties.placementStrategies),PlatformVersion:cdk().stringToCloudFormation(properties.platformVersion),PropagateTags:cdk().stringToCloudFormation(properties.propagateTags),Role:cdk().stringToCloudFormation(properties.role),SchedulingStrategy:cdk().stringToCloudFormation(properties.schedulingStrategy),ServiceConnectConfiguration:convertCfnServiceServiceConnectConfigurationPropertyToCloudFormation(properties.serviceConnectConfiguration),ServiceName:cdk().stringToCloudFormation(properties.serviceName),ServiceRegistries:cdk().listMapper(convertCfnServiceServiceRegistryPropertyToCloudFormation)(properties.serviceRegistries),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TaskDefinition:cdk().stringToCloudFormation(properties.taskDefinition),VolumeConfigurations:cdk().listMapper(convertCfnServiceServiceVolumeConfigurationPropertyToCloudFormation)(properties.volumeConfigurations),VpcLatticeConfigurations:cdk().listMapper(convertCfnServiceVpcLatticeConfigurationPropertyToCloudFormation)(properties.vpcLatticeConfigurations)}):properties}function CfnServicePropsFromCloudFormation(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("availabilityZoneRebalancing","AvailabilityZoneRebalancing",properties.AvailabilityZoneRebalancing!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneRebalancing):void 0),ret.addPropertyResult("capacityProviderStrategy","CapacityProviderStrategy",properties.CapacityProviderStrategy!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceCapacityProviderStrategyItemPropertyFromCloudFormation)(properties.CapacityProviderStrategy):void 0),ret.addPropertyResult("cluster","Cluster",properties.Cluster!=null?cfn_parse().FromCloudFormation.getString(properties.Cluster):void 0),ret.addPropertyResult("deploymentConfiguration","DeploymentConfiguration",properties.DeploymentConfiguration!=null?CfnServiceDeploymentConfigurationPropertyFromCloudFormation(properties.DeploymentConfiguration):void 0),ret.addPropertyResult("deploymentController","DeploymentController",properties.DeploymentController!=null?CfnServiceDeploymentControllerPropertyFromCloudFormation(properties.DeploymentController):void 0),ret.addPropertyResult("desiredCount","DesiredCount",properties.DesiredCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.DesiredCount):void 0),ret.addPropertyResult("enableEcsManagedTags","EnableECSManagedTags",properties.EnableECSManagedTags!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableECSManagedTags):void 0),ret.addPropertyResult("enableExecuteCommand","EnableExecuteCommand",properties.EnableExecuteCommand!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableExecuteCommand):void 0),ret.addPropertyResult("forceNewDeployment","ForceNewDeployment",properties.ForceNewDeployment!=null?CfnServiceForceNewDeploymentPropertyFromCloudFormation(properties.ForceNewDeployment):void 0),ret.addPropertyResult("healthCheckGracePeriodSeconds","HealthCheckGracePeriodSeconds",properties.HealthCheckGracePeriodSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.HealthCheckGracePeriodSeconds):void 0),ret.addPropertyResult("launchType","LaunchType",properties.LaunchType!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchType):void 0),ret.addPropertyResult("loadBalancers","LoadBalancers",properties.LoadBalancers!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceLoadBalancerPropertyFromCloudFormation)(properties.LoadBalancers):void 0),ret.addPropertyResult("networkConfiguration","NetworkConfiguration",properties.NetworkConfiguration!=null?CfnServiceNetworkConfigurationPropertyFromCloudFormation(properties.NetworkConfiguration):void 0),ret.addPropertyResult("placementConstraints","PlacementConstraints",properties.PlacementConstraints!=null?cfn_parse().FromCloudFormation.getArray(CfnServicePlacementConstraintPropertyFromCloudFormation)(properties.PlacementConstraints):void 0),ret.addPropertyResult("placementStrategies","PlacementStrategies",properties.PlacementStrategies!=null?cfn_parse().FromCloudFormation.getArray(CfnServicePlacementStrategyPropertyFromCloudFormation)(properties.PlacementStrategies):void 0),ret.addPropertyResult("platformVersion","PlatformVersion",properties.PlatformVersion!=null?cfn_parse().FromCloudFormation.getString(properties.PlatformVersion):void 0),ret.addPropertyResult("propagateTags","PropagateTags",properties.PropagateTags!=null?cfn_parse().FromCloudFormation.getString(properties.PropagateTags):void 0),ret.addPropertyResult("role","Role",properties.Role!=null?cfn_parse().FromCloudFormation.getString(properties.Role):void 0),ret.addPropertyResult("schedulingStrategy","SchedulingStrategy",properties.SchedulingStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.SchedulingStrategy):void 0),ret.addPropertyResult("serviceConnectConfiguration","ServiceConnectConfiguration",properties.ServiceConnectConfiguration!=null?CfnServiceServiceConnectConfigurationPropertyFromCloudFormation(properties.ServiceConnectConfiguration):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("serviceRegistries","ServiceRegistries",properties.ServiceRegistries!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceServiceRegistryPropertyFromCloudFormation)(properties.ServiceRegistries):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("taskDefinition","TaskDefinition",properties.TaskDefinition!=null?cfn_parse().FromCloudFormation.getString(properties.TaskDefinition):void 0),ret.addPropertyResult("volumeConfigurations","VolumeConfigurations",properties.VolumeConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceServiceVolumeConfigurationPropertyFromCloudFormation)(properties.VolumeConfigurations):void 0),ret.addPropertyResult("vpcLatticeConfigurations","VpcLatticeConfigurations",properties.VpcLatticeConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnServiceVpcLatticeConfigurationPropertyFromCloudFormation)(properties.VpcLatticeConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTaskDefinition extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnTaskDefinition",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::TaskDefinition";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTaskDefinitionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTaskDefinition(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 isCfnTaskDefinition(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTaskDefinition.CFN_RESOURCE_TYPE_NAME}static arnForTaskDefinition(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_ITaskDefinitionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTaskDefinition),error}return resource.taskDefinitionRef.taskDefinitionArn}_containerDefinitions;_cpu;_enableFaultInjection;_ephemeralStorage;_executionRoleArn;_family;_inferenceAccelerators;_ipcMode;_memory;_networkMode;_pidMode;_placementConstraints;_proxyConfiguration;_requiresCompatibilities;_runtimePlatform;tags;_tagsRaw;_taskRoleArn;_volumes;cfnPropertyNames={containerDefinitions:"ContainerDefinitions",cpu:"Cpu",enableFaultInjection:"EnableFaultInjection",ephemeralStorage:"EphemeralStorage",executionRoleArn:"ExecutionRoleArn",family:"Family",inferenceAccelerators:"InferenceAccelerators",ipcMode:"IpcMode",memory:"Memory",networkMode:"NetworkMode",pidMode:"PidMode",placementConstraints:"PlacementConstraints",proxyConfiguration:"ProxyConfiguration",requiresCompatibilities:"RequiresCompatibilities",runtimePlatform:"RuntimePlatform",tags:"Tags",taskRoleArn:"TaskRoleArn",volumes:"Volumes"};constructor(scope,id,props={}){super(scope,id,{type:CfnTaskDefinition.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnTaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTaskDefinition),error}this._containerDefinitions=props.containerDefinitions,this._cpu=props.cpu,this._enableFaultInjection=props.enableFaultInjection,this._ephemeralStorage=props.ephemeralStorage,this._executionRoleArn=cdk().getRefProperty(props.executionRoleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.executionRoleArn,"executionRoleArn","iam.IRoleRef | string"),this._family=props.family,this._inferenceAccelerators=props.inferenceAccelerators,this._ipcMode=props.ipcMode,this._memory=props.memory,this._networkMode=props.networkMode,this._pidMode=props.pidMode,this._placementConstraints=props.placementConstraints,this._proxyConfiguration=props.proxyConfiguration,this._requiresCompatibilities=props.requiresCompatibilities,this._runtimePlatform=props.runtimePlatform,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::TaskDefinition",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._taskRoleArn=cdk().getRefProperty(props.taskRoleArn?.roleRef,"roleArn")??cdk().getRefProperty(props.taskRoleArn?.roleRef,"roleName")??cdk().ensureStringOrUndefined(props.taskRoleArn,"taskRoleArn","iam.IRoleRef | string"),this._volumes=props.volumes}get taskDefinitionRef(){return{taskDefinitionArn:this.ref}}get containerDefinitions(){return this._containerDefinitions}set containerDefinitions(value){cdk().traceProperty(this.node,"ContainerDefinitions"),this._containerDefinitions=value}get cpu(){return this._cpu}set cpu(value){cdk().traceProperty(this.node,"Cpu"),this._cpu=value}get enableFaultInjection(){return this._enableFaultInjection}set enableFaultInjection(value){cdk().traceProperty(this.node,"EnableFaultInjection"),this._enableFaultInjection=value}get ephemeralStorage(){return this._ephemeralStorage}set ephemeralStorage(value){cdk().traceProperty(this.node,"EphemeralStorage"),this._ephemeralStorage=value}get executionRoleArn(){return this._executionRoleArn}set executionRoleArn(value){cdk().traceProperty(this.node,"ExecutionRoleArn"),this._executionRoleArn=value}get family(){return this._family}set family(value){cdk().traceProperty(this.node,"Family"),this._family=value}get inferenceAccelerators(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_ecs.CfnTaskDefinition#inferenceAccelerators","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"inferenceAccelerators").get),error}return this._inferenceAccelerators}set inferenceAccelerators(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_ecs.CfnTaskDefinition#inferenceAccelerators","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"inferenceAccelerators").set),error}cdk().traceProperty(this.node,"InferenceAccelerators"),this._inferenceAccelerators=value}get ipcMode(){return this._ipcMode}set ipcMode(value){cdk().traceProperty(this.node,"IpcMode"),this._ipcMode=value}get memory(){return this._memory}set memory(value){cdk().traceProperty(this.node,"Memory"),this._memory=value}get networkMode(){return this._networkMode}set networkMode(value){cdk().traceProperty(this.node,"NetworkMode"),this._networkMode=value}get pidMode(){return this._pidMode}set pidMode(value){cdk().traceProperty(this.node,"PidMode"),this._pidMode=value}get placementConstraints(){return this._placementConstraints}set placementConstraints(value){cdk().traceProperty(this.node,"PlacementConstraints"),this._placementConstraints=value}get proxyConfiguration(){return this._proxyConfiguration}set proxyConfiguration(value){cdk().traceProperty(this.node,"ProxyConfiguration"),this._proxyConfiguration=value}get requiresCompatibilities(){return this._requiresCompatibilities}set requiresCompatibilities(value){cdk().traceProperty(this.node,"RequiresCompatibilities"),this._requiresCompatibilities=value}get runtimePlatform(){return this._runtimePlatform}set runtimePlatform(value){cdk().traceProperty(this.node,"RuntimePlatform"),this._runtimePlatform=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get taskRoleArn(){return this._taskRoleArn}set taskRoleArn(value){cdk().traceProperty(this.node,"TaskRoleArn"),this._taskRoleArn=value}get volumes(){return this._volumes}set volumes(value){cdk().traceProperty(this.node,"Volumes"),this._volumes=value}get attrTaskDefinitionArn(){return cdk().Token.asString(this.getAtt("TaskDefinitionArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{containerDefinitions:this._containerDefinitions,cpu:this._cpu,enableFaultInjection:this._enableFaultInjection,ephemeralStorage:this._ephemeralStorage,executionRoleArn:this._executionRoleArn,family:this._family,inferenceAccelerators:this._inferenceAccelerators,ipcMode:this._ipcMode,memory:this._memory,networkMode:this._networkMode,pidMode:this._pidMode,placementConstraints:this._placementConstraints,proxyConfiguration:this._proxyConfiguration,requiresCompatibilities:this._requiresCompatibilities,runtimePlatform:this._runtimePlatform,tags:this.tags.renderTags(),taskRoleArn:this._taskRoleArn,volumes:this._volumes}}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",CfnTaskDefinition.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTaskDefinitionPropsToCloudFormation(props)}}exports.CfnTaskDefinition=CfnTaskDefinition;function CfnTaskDefinitionInferenceAcceleratorPropertyValidator(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("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("deviceType",cdk().validateString)(properties.deviceType)),errors.wrap('supplied properties not correct for "InferenceAcceleratorProperty"')}function convertCfnTaskDefinitionInferenceAcceleratorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),DeviceType:cdk().stringToCloudFormation(properties.deviceType)}):properties}function CfnTaskDefinitionInferenceAcceleratorPropertyFromCloudFormation(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("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("deviceType","DeviceType",properties.DeviceType!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyValidator(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("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "TaskDefinitionPlacementConstraintProperty"')}function convertCfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyValidator(properties).assertSuccess(),{Expression:cdk().stringToCloudFormation(properties.expression),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyFromCloudFormation(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("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionRuntimePlatformPropertyValidator(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("cpuArchitecture",cdk().validateString)(properties.cpuArchitecture)),errors.collect(cdk().propertyValidator("operatingSystemFamily",cdk().validateString)(properties.operatingSystemFamily)),errors.wrap('supplied properties not correct for "RuntimePlatformProperty"')}function convertCfnTaskDefinitionRuntimePlatformPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionRuntimePlatformPropertyValidator(properties).assertSuccess(),{CpuArchitecture:cdk().stringToCloudFormation(properties.cpuArchitecture),OperatingSystemFamily:cdk().stringToCloudFormation(properties.operatingSystemFamily)}):properties}function CfnTaskDefinitionRuntimePlatformPropertyFromCloudFormation(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("cpuArchitecture","CpuArchitecture",properties.CpuArchitecture!=null?cfn_parse().FromCloudFormation.getString(properties.CpuArchitecture):void 0),ret.addPropertyResult("operatingSystemFamily","OperatingSystemFamily",properties.OperatingSystemFamily!=null?cfn_parse().FromCloudFormation.getString(properties.OperatingSystemFamily):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionKeyValuePairPropertyValidator(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("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KeyValuePairProperty"')}function convertCfnTaskDefinitionKeyValuePairPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionKeyValuePairPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTaskDefinitionKeyValuePairPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionProxyConfigurationPropertyValidator(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("containerName",cdk().requiredValidator)(properties.containerName)),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("proxyConfigurationProperties",cdk().listValidator(CfnTaskDefinitionKeyValuePairPropertyValidator))(properties.proxyConfigurationProperties)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ProxyConfigurationProperty"')}function convertCfnTaskDefinitionProxyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionProxyConfigurationPropertyValidator(properties).assertSuccess(),{ContainerName:cdk().stringToCloudFormation(properties.containerName),ProxyConfigurationProperties:cdk().listMapper(convertCfnTaskDefinitionKeyValuePairPropertyToCloudFormation)(properties.proxyConfigurationProperties),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnTaskDefinitionProxyConfigurationPropertyFromCloudFormation(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("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("proxyConfigurationProperties","ProxyConfigurationProperties",properties.ProxyConfigurationProperties!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionKeyValuePairPropertyFromCloudFormation)(properties.ProxyConfigurationProperties):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionAuthorizationConfigPropertyValidator(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("accessPointId",cdk().validateString)(properties.accessPointId)),errors.collect(cdk().propertyValidator("iam",cdk().validateString)(properties.iam)),errors.wrap('supplied properties not correct for "AuthorizationConfigProperty"')}function convertCfnTaskDefinitionAuthorizationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionAuthorizationConfigPropertyValidator(properties).assertSuccess(),{AccessPointId:cdk().stringToCloudFormation(properties.accessPointId),IAM:cdk().stringToCloudFormation(properties.iam)}):properties}function CfnTaskDefinitionAuthorizationConfigPropertyFromCloudFormation(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("accessPointId","AccessPointId",properties.AccessPointId!=null?cfn_parse().FromCloudFormation.getString(properties.AccessPointId):void 0),ret.addPropertyResult("iam","IAM",properties.IAM!=null?cfn_parse().FromCloudFormation.getString(properties.IAM):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionEFSVolumeConfigurationPropertyValidator(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("authorizationConfig",CfnTaskDefinitionAuthorizationConfigPropertyValidator)(properties.authorizationConfig)),errors.collect(cdk().propertyValidator("filesystemId",cdk().requiredValidator)(properties.filesystemId)),errors.collect(cdk().propertyValidator("filesystemId",cdk().validateString)(properties.filesystemId)),errors.collect(cdk().propertyValidator("rootDirectory",cdk().validateString)(properties.rootDirectory)),errors.collect(cdk().propertyValidator("transitEncryption",cdk().validateString)(properties.transitEncryption)),errors.collect(cdk().propertyValidator("transitEncryptionPort",cdk().validateNumber)(properties.transitEncryptionPort)),errors.wrap('supplied properties not correct for "EFSVolumeConfigurationProperty"')}function convertCfnTaskDefinitionEFSVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionEFSVolumeConfigurationPropertyValidator(properties).assertSuccess(),{AuthorizationConfig:convertCfnTaskDefinitionAuthorizationConfigPropertyToCloudFormation(properties.authorizationConfig),FilesystemId:cdk().stringToCloudFormation(properties.filesystemId),RootDirectory:cdk().stringToCloudFormation(properties.rootDirectory),TransitEncryption:cdk().stringToCloudFormation(properties.transitEncryption),TransitEncryptionPort:cdk().numberToCloudFormation(properties.transitEncryptionPort)}):properties}function CfnTaskDefinitionEFSVolumeConfigurationPropertyFromCloudFormation(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("authorizationConfig","AuthorizationConfig",properties.AuthorizationConfig!=null?CfnTaskDefinitionAuthorizationConfigPropertyFromCloudFormation(properties.AuthorizationConfig):void 0),ret.addPropertyResult("filesystemId","FilesystemId",properties.FilesystemId!=null?cfn_parse().FromCloudFormation.getString(properties.FilesystemId):void 0),ret.addPropertyResult("rootDirectory","RootDirectory",properties.RootDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.RootDirectory):void 0),ret.addPropertyResult("transitEncryption","TransitEncryption",properties.TransitEncryption!=null?cfn_parse().FromCloudFormation.getString(properties.TransitEncryption):void 0),ret.addPropertyResult("transitEncryptionPort","TransitEncryptionPort",properties.TransitEncryptionPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.TransitEncryptionPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionHostVolumePropertiesPropertyValidator(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("sourcePath",cdk().validateString)(properties.sourcePath)),errors.wrap('supplied properties not correct for "HostVolumePropertiesProperty"')}function convertCfnTaskDefinitionHostVolumePropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionHostVolumePropertiesPropertyValidator(properties).assertSuccess(),{SourcePath:cdk().stringToCloudFormation(properties.sourcePath)}):properties}function CfnTaskDefinitionHostVolumePropertiesPropertyFromCloudFormation(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("sourcePath","SourcePath",properties.SourcePath!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionDockerVolumeConfigurationPropertyValidator(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("autoprovision",cdk().validateBoolean)(properties.autoprovision)),errors.collect(cdk().propertyValidator("driver",cdk().validateString)(properties.driver)),errors.collect(cdk().propertyValidator("driverOpts",cdk().hashValidator(cdk().validateString))(properties.driverOpts)),errors.collect(cdk().propertyValidator("labels",cdk().hashValidator(cdk().validateString))(properties.labels)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.wrap('supplied properties not correct for "DockerVolumeConfigurationProperty"')}function convertCfnTaskDefinitionDockerVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionDockerVolumeConfigurationPropertyValidator(properties).assertSuccess(),{Autoprovision:cdk().booleanToCloudFormation(properties.autoprovision),Driver:cdk().stringToCloudFormation(properties.driver),DriverOpts:cdk().hashMapper(cdk().stringToCloudFormation)(properties.driverOpts),Labels:cdk().hashMapper(cdk().stringToCloudFormation)(properties.labels),Scope:cdk().stringToCloudFormation(properties.scope)}):properties}function CfnTaskDefinitionDockerVolumeConfigurationPropertyFromCloudFormation(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("autoprovision","Autoprovision",properties.Autoprovision!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Autoprovision):void 0),ret.addPropertyResult("driver","Driver",properties.Driver!=null?cfn_parse().FromCloudFormation.getString(properties.Driver):void 0),ret.addPropertyResult("driverOpts","DriverOpts",properties.DriverOpts!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.DriverOpts):void 0),ret.addPropertyResult("labels","Labels",properties.Labels!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Labels):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionS3FilesVolumeConfigurationPropertyValidator(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("accessPointArn",cdk().validateString)(properties.accessPointArn)),errors.collect(cdk().propertyValidator("fileSystemArn",cdk().requiredValidator)(properties.fileSystemArn)),errors.collect(cdk().propertyValidator("fileSystemArn",cdk().validateString)(properties.fileSystemArn)),errors.collect(cdk().propertyValidator("rootDirectory",cdk().validateString)(properties.rootDirectory)),errors.collect(cdk().propertyValidator("transitEncryptionPort",cdk().validateNumber)(properties.transitEncryptionPort)),errors.wrap('supplied properties not correct for "S3FilesVolumeConfigurationProperty"')}function convertCfnTaskDefinitionS3FilesVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionS3FilesVolumeConfigurationPropertyValidator(properties).assertSuccess(),{AccessPointArn:cdk().stringToCloudFormation(properties.accessPointArn),FileSystemArn:cdk().stringToCloudFormation(properties.fileSystemArn),RootDirectory:cdk().stringToCloudFormation(properties.rootDirectory),TransitEncryptionPort:cdk().numberToCloudFormation(properties.transitEncryptionPort)}):properties}function CfnTaskDefinitionS3FilesVolumeConfigurationPropertyFromCloudFormation(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("accessPointArn","AccessPointArn",properties.AccessPointArn!=null?cfn_parse().FromCloudFormation.getString(properties.AccessPointArn):void 0),ret.addPropertyResult("fileSystemArn","FileSystemArn",properties.FileSystemArn!=null?cfn_parse().FromCloudFormation.getString(properties.FileSystemArn):void 0),ret.addPropertyResult("rootDirectory","RootDirectory",properties.RootDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.RootDirectory):void 0),ret.addPropertyResult("transitEncryptionPort","TransitEncryptionPort",properties.TransitEncryptionPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.TransitEncryptionPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionFSxAuthorizationConfigPropertyValidator(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("credentialsParameter",cdk().requiredValidator)(properties.credentialsParameter)),errors.collect(cdk().propertyValidator("credentialsParameter",cdk().validateString)(properties.credentialsParameter)),errors.collect(cdk().propertyValidator("domain",cdk().requiredValidator)(properties.domain)),errors.collect(cdk().propertyValidator("domain",cdk().validateString)(properties.domain)),errors.wrap('supplied properties not correct for "FSxAuthorizationConfigProperty"')}function convertCfnTaskDefinitionFSxAuthorizationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionFSxAuthorizationConfigPropertyValidator(properties).assertSuccess(),{CredentialsParameter:cdk().stringToCloudFormation(properties.credentialsParameter),Domain:cdk().stringToCloudFormation(properties.domain)}):properties}function CfnTaskDefinitionFSxAuthorizationConfigPropertyFromCloudFormation(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("credentialsParameter","CredentialsParameter",properties.CredentialsParameter!=null?cfn_parse().FromCloudFormation.getString(properties.CredentialsParameter):void 0),ret.addPropertyResult("domain","Domain",properties.Domain!=null?cfn_parse().FromCloudFormation.getString(properties.Domain):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyValidator(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("authorizationConfig",CfnTaskDefinitionFSxAuthorizationConfigPropertyValidator)(properties.authorizationConfig)),errors.collect(cdk().propertyValidator("fileSystemId",cdk().requiredValidator)(properties.fileSystemId)),errors.collect(cdk().propertyValidator("fileSystemId",cdk().validateString)(properties.fileSystemId)),errors.collect(cdk().propertyValidator("rootDirectory",cdk().requiredValidator)(properties.rootDirectory)),errors.collect(cdk().propertyValidator("rootDirectory",cdk().validateString)(properties.rootDirectory)),errors.wrap('supplied properties not correct for "FSxWindowsFileServerVolumeConfigurationProperty"')}function convertCfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyValidator(properties).assertSuccess(),{AuthorizationConfig:convertCfnTaskDefinitionFSxAuthorizationConfigPropertyToCloudFormation(properties.authorizationConfig),FileSystemId:cdk().stringToCloudFormation(properties.fileSystemId),RootDirectory:cdk().stringToCloudFormation(properties.rootDirectory)}):properties}function CfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyFromCloudFormation(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("authorizationConfig","AuthorizationConfig",properties.AuthorizationConfig!=null?CfnTaskDefinitionFSxAuthorizationConfigPropertyFromCloudFormation(properties.AuthorizationConfig):void 0),ret.addPropertyResult("fileSystemId","FileSystemId",properties.FileSystemId!=null?cfn_parse().FromCloudFormation.getString(properties.FileSystemId):void 0),ret.addPropertyResult("rootDirectory","RootDirectory",properties.RootDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.RootDirectory):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionVolumePropertyValidator(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("configuredAtLaunch",cdk().validateBoolean)(properties.configuredAtLaunch)),errors.collect(cdk().propertyValidator("dockerVolumeConfiguration",CfnTaskDefinitionDockerVolumeConfigurationPropertyValidator)(properties.dockerVolumeConfiguration)),errors.collect(cdk().propertyValidator("efsVolumeConfiguration",CfnTaskDefinitionEFSVolumeConfigurationPropertyValidator)(properties.efsVolumeConfiguration)),errors.collect(cdk().propertyValidator("fSxWindowsFileServerVolumeConfiguration",CfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyValidator)(properties.fSxWindowsFileServerVolumeConfiguration)),errors.collect(cdk().propertyValidator("host",CfnTaskDefinitionHostVolumePropertiesPropertyValidator)(properties.host)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("s3FilesVolumeConfiguration",CfnTaskDefinitionS3FilesVolumeConfigurationPropertyValidator)(properties.s3FilesVolumeConfiguration)),errors.wrap('supplied properties not correct for "VolumeProperty"')}function convertCfnTaskDefinitionVolumePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionVolumePropertyValidator(properties).assertSuccess(),{ConfiguredAtLaunch:cdk().booleanToCloudFormation(properties.configuredAtLaunch),DockerVolumeConfiguration:convertCfnTaskDefinitionDockerVolumeConfigurationPropertyToCloudFormation(properties.dockerVolumeConfiguration),EFSVolumeConfiguration:convertCfnTaskDefinitionEFSVolumeConfigurationPropertyToCloudFormation(properties.efsVolumeConfiguration),FSxWindowsFileServerVolumeConfiguration:convertCfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyToCloudFormation(properties.fSxWindowsFileServerVolumeConfiguration),Host:convertCfnTaskDefinitionHostVolumePropertiesPropertyToCloudFormation(properties.host),Name:cdk().stringToCloudFormation(properties.name),S3FilesVolumeConfiguration:convertCfnTaskDefinitionS3FilesVolumeConfigurationPropertyToCloudFormation(properties.s3FilesVolumeConfiguration)}):properties}function CfnTaskDefinitionVolumePropertyFromCloudFormation(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("configuredAtLaunch","ConfiguredAtLaunch",properties.ConfiguredAtLaunch!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ConfiguredAtLaunch):void 0),ret.addPropertyResult("dockerVolumeConfiguration","DockerVolumeConfiguration",properties.DockerVolumeConfiguration!=null?CfnTaskDefinitionDockerVolumeConfigurationPropertyFromCloudFormation(properties.DockerVolumeConfiguration):void 0),ret.addPropertyResult("efsVolumeConfiguration","EFSVolumeConfiguration",properties.EFSVolumeConfiguration!=null?CfnTaskDefinitionEFSVolumeConfigurationPropertyFromCloudFormation(properties.EFSVolumeConfiguration):void 0),ret.addPropertyResult("fSxWindowsFileServerVolumeConfiguration","FSxWindowsFileServerVolumeConfiguration",properties.FSxWindowsFileServerVolumeConfiguration!=null?CfnTaskDefinitionFSxWindowsFileServerVolumeConfigurationPropertyFromCloudFormation(properties.FSxWindowsFileServerVolumeConfiguration):void 0),ret.addPropertyResult("host","Host",properties.Host!=null?CfnTaskDefinitionHostVolumePropertiesPropertyFromCloudFormation(properties.Host):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("s3FilesVolumeConfiguration","S3FilesVolumeConfiguration",properties.S3FilesVolumeConfiguration!=null?CfnTaskDefinitionS3FilesVolumeConfigurationPropertyFromCloudFormation(properties.S3FilesVolumeConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionSecretPropertyValidator(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("valueFrom",cdk().requiredValidator)(properties.valueFrom)),errors.collect(cdk().propertyValidator("valueFrom",cdk().validateString)(properties.valueFrom)),errors.wrap('supplied properties not correct for "SecretProperty"')}function convertCfnTaskDefinitionSecretPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionSecretPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ValueFrom:cdk().stringToCloudFormation(properties.valueFrom)}):properties}function CfnTaskDefinitionSecretPropertyFromCloudFormation(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("valueFrom","ValueFrom",properties.ValueFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValueFrom):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionHealthCheckPropertyValidator(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("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("retries",cdk().validateNumber)(properties.retries)),errors.collect(cdk().propertyValidator("startPeriod",cdk().validateNumber)(properties.startPeriod)),errors.collect(cdk().propertyValidator("timeout",cdk().validateNumber)(properties.timeout)),errors.wrap('supplied properties not correct for "HealthCheckProperty"')}function convertCfnTaskDefinitionHealthCheckPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionHealthCheckPropertyValidator(properties).assertSuccess(),{Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),Interval:cdk().numberToCloudFormation(properties.interval),Retries:cdk().numberToCloudFormation(properties.retries),StartPeriod:cdk().numberToCloudFormation(properties.startPeriod),Timeout:cdk().numberToCloudFormation(properties.timeout)}):properties}function CfnTaskDefinitionHealthCheckPropertyFromCloudFormation(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("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("retries","Retries",properties.Retries!=null?cfn_parse().FromCloudFormation.getNumber(properties.Retries):void 0),ret.addPropertyResult("startPeriod","StartPeriod",properties.StartPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.StartPeriod):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionVolumeFromPropertyValidator(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("readOnly",cdk().validateBoolean)(properties.readOnly)),errors.collect(cdk().propertyValidator("sourceContainer",cdk().validateString)(properties.sourceContainer)),errors.wrap('supplied properties not correct for "VolumeFromProperty"')}function convertCfnTaskDefinitionVolumeFromPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionVolumeFromPropertyValidator(properties).assertSuccess(),{ReadOnly:cdk().booleanToCloudFormation(properties.readOnly),SourceContainer:cdk().stringToCloudFormation(properties.sourceContainer)}):properties}function CfnTaskDefinitionVolumeFromPropertyFromCloudFormation(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("readOnly","ReadOnly",properties.ReadOnly!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReadOnly):void 0),ret.addPropertyResult("sourceContainer","SourceContainer",properties.SourceContainer!=null?cfn_parse().FromCloudFormation.getString(properties.SourceContainer):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionLogConfigurationPropertyValidator(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("logDriver",cdk().requiredValidator)(properties.logDriver)),errors.collect(cdk().propertyValidator("logDriver",cdk().validateString)(properties.logDriver)),errors.collect(cdk().propertyValidator("options",cdk().hashValidator(cdk().validateString))(properties.options)),errors.collect(cdk().propertyValidator("secretOptions",cdk().listValidator(CfnTaskDefinitionSecretPropertyValidator))(properties.secretOptions)),errors.wrap('supplied properties not correct for "LogConfigurationProperty"')}function convertCfnTaskDefinitionLogConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionLogConfigurationPropertyValidator(properties).assertSuccess(),{LogDriver:cdk().stringToCloudFormation(properties.logDriver),Options:cdk().hashMapper(cdk().stringToCloudFormation)(properties.options),SecretOptions:cdk().listMapper(convertCfnTaskDefinitionSecretPropertyToCloudFormation)(properties.secretOptions)}):properties}function CfnTaskDefinitionLogConfigurationPropertyFromCloudFormation(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("logDriver","LogDriver",properties.LogDriver!=null?cfn_parse().FromCloudFormation.getString(properties.LogDriver):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Options):void 0),ret.addPropertyResult("secretOptions","SecretOptions",properties.SecretOptions!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionSecretPropertyFromCloudFormation)(properties.SecretOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionResourceRequirementPropertyValidator(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("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),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 "ResourceRequirementProperty"')}function convertCfnTaskDefinitionResourceRequirementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionResourceRequirementPropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTaskDefinitionResourceRequirementPropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionEnvironmentFilePropertyValidator(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("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "EnvironmentFileProperty"')}function convertCfnTaskDefinitionEnvironmentFilePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionEnvironmentFilePropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTaskDefinitionEnvironmentFilePropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionFirelensConfigurationPropertyValidator(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("options",cdk().hashValidator(cdk().validateString))(properties.options)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "FirelensConfigurationProperty"')}function convertCfnTaskDefinitionFirelensConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionFirelensConfigurationPropertyValidator(properties).assertSuccess(),{Options:cdk().hashMapper(cdk().stringToCloudFormation)(properties.options),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnTaskDefinitionFirelensConfigurationPropertyFromCloudFormation(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("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Options):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionSystemControlPropertyValidator(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("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "SystemControlProperty"')}function convertCfnTaskDefinitionSystemControlPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionSystemControlPropertyValidator(properties).assertSuccess(),{Namespace:cdk().stringToCloudFormation(properties.namespace),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTaskDefinitionSystemControlPropertyFromCloudFormation(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("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionUlimitPropertyValidator(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("hardLimit",cdk().requiredValidator)(properties.hardLimit)),errors.collect(cdk().propertyValidator("hardLimit",cdk().validateNumber)(properties.hardLimit)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("softLimit",cdk().requiredValidator)(properties.softLimit)),errors.collect(cdk().propertyValidator("softLimit",cdk().validateNumber)(properties.softLimit)),errors.wrap('supplied properties not correct for "UlimitProperty"')}function convertCfnTaskDefinitionUlimitPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionUlimitPropertyValidator(properties).assertSuccess(),{HardLimit:cdk().numberToCloudFormation(properties.hardLimit),Name:cdk().stringToCloudFormation(properties.name),SoftLimit:cdk().numberToCloudFormation(properties.softLimit)}):properties}function CfnTaskDefinitionUlimitPropertyFromCloudFormation(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("hardLimit","HardLimit",properties.HardLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HardLimit):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("softLimit","SoftLimit",properties.SoftLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.SoftLimit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionRepositoryCredentialsPropertyValidator(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("credentialsParameter",cdk().validateString)(properties.credentialsParameter)),errors.wrap('supplied properties not correct for "RepositoryCredentialsProperty"')}function convertCfnTaskDefinitionRepositoryCredentialsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionRepositoryCredentialsPropertyValidator(properties).assertSuccess(),{CredentialsParameter:cdk().stringToCloudFormation(properties.credentialsParameter)}):properties}function CfnTaskDefinitionRepositoryCredentialsPropertyFromCloudFormation(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("credentialsParameter","CredentialsParameter",properties.CredentialsParameter!=null?cfn_parse().FromCloudFormation.getString(properties.CredentialsParameter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionHostEntryPropertyValidator(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("hostname",cdk().validateString)(properties.hostname)),errors.collect(cdk().propertyValidator("ipAddress",cdk().validateString)(properties.ipAddress)),errors.wrap('supplied properties not correct for "HostEntryProperty"')}function convertCfnTaskDefinitionHostEntryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionHostEntryPropertyValidator(properties).assertSuccess(),{Hostname:cdk().stringToCloudFormation(properties.hostname),IpAddress:cdk().stringToCloudFormation(properties.ipAddress)}):properties}function CfnTaskDefinitionHostEntryPropertyFromCloudFormation(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("hostname","Hostname",properties.Hostname!=null?cfn_parse().FromCloudFormation.getString(properties.Hostname):void 0),ret.addPropertyResult("ipAddress","IpAddress",properties.IpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionKernelCapabilitiesPropertyValidator(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("add",cdk().listValidator(cdk().validateString))(properties.add)),errors.collect(cdk().propertyValidator("drop",cdk().listValidator(cdk().validateString))(properties.drop)),errors.wrap('supplied properties not correct for "KernelCapabilitiesProperty"')}function convertCfnTaskDefinitionKernelCapabilitiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionKernelCapabilitiesPropertyValidator(properties).assertSuccess(),{Add:cdk().listMapper(cdk().stringToCloudFormation)(properties.add),Drop:cdk().listMapper(cdk().stringToCloudFormation)(properties.drop)}):properties}function CfnTaskDefinitionKernelCapabilitiesPropertyFromCloudFormation(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("add","Add",properties.Add!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Add):void 0),ret.addPropertyResult("drop","Drop",properties.Drop!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Drop):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionTmpfsPropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("mountOptions",cdk().listValidator(cdk().validateString))(properties.mountOptions)),errors.collect(cdk().propertyValidator("size",cdk().requiredValidator)(properties.size)),errors.collect(cdk().propertyValidator("size",cdk().validateNumber)(properties.size)),errors.wrap('supplied properties not correct for "TmpfsProperty"')}function convertCfnTaskDefinitionTmpfsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionTmpfsPropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),MountOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.mountOptions),Size:cdk().numberToCloudFormation(properties.size)}):properties}function CfnTaskDefinitionTmpfsPropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("mountOptions","MountOptions",properties.MountOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MountOptions):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse().FromCloudFormation.getNumber(properties.Size):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionDevicePropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("hostPath",cdk().validateString)(properties.hostPath)),errors.collect(cdk().propertyValidator("permissions",cdk().listValidator(cdk().validateString))(properties.permissions)),errors.wrap('supplied properties not correct for "DeviceProperty"')}function convertCfnTaskDefinitionDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionDevicePropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),HostPath:cdk().stringToCloudFormation(properties.hostPath),Permissions:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissions)}):properties}function CfnTaskDefinitionDevicePropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("hostPath","HostPath",properties.HostPath!=null?cfn_parse().FromCloudFormation.getString(properties.HostPath):void 0),ret.addPropertyResult("permissions","Permissions",properties.Permissions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Permissions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionLinuxParametersPropertyValidator(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("capabilities",CfnTaskDefinitionKernelCapabilitiesPropertyValidator)(properties.capabilities)),errors.collect(cdk().propertyValidator("devices",cdk().listValidator(CfnTaskDefinitionDevicePropertyValidator))(properties.devices)),errors.collect(cdk().propertyValidator("initProcessEnabled",cdk().validateBoolean)(properties.initProcessEnabled)),errors.collect(cdk().propertyValidator("maxSwap",cdk().validateNumber)(properties.maxSwap)),errors.collect(cdk().propertyValidator("sharedMemorySize",cdk().validateNumber)(properties.sharedMemorySize)),errors.collect(cdk().propertyValidator("swappiness",cdk().validateNumber)(properties.swappiness)),errors.collect(cdk().propertyValidator("tmpfs",cdk().listValidator(CfnTaskDefinitionTmpfsPropertyValidator))(properties.tmpfs)),errors.wrap('supplied properties not correct for "LinuxParametersProperty"')}function convertCfnTaskDefinitionLinuxParametersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionLinuxParametersPropertyValidator(properties).assertSuccess(),{Capabilities:convertCfnTaskDefinitionKernelCapabilitiesPropertyToCloudFormation(properties.capabilities),Devices:cdk().listMapper(convertCfnTaskDefinitionDevicePropertyToCloudFormation)(properties.devices),InitProcessEnabled:cdk().booleanToCloudFormation(properties.initProcessEnabled),MaxSwap:cdk().numberToCloudFormation(properties.maxSwap),SharedMemorySize:cdk().numberToCloudFormation(properties.sharedMemorySize),Swappiness:cdk().numberToCloudFormation(properties.swappiness),Tmpfs:cdk().listMapper(convertCfnTaskDefinitionTmpfsPropertyToCloudFormation)(properties.tmpfs)}):properties}function CfnTaskDefinitionLinuxParametersPropertyFromCloudFormation(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("capabilities","Capabilities",properties.Capabilities!=null?CfnTaskDefinitionKernelCapabilitiesPropertyFromCloudFormation(properties.Capabilities):void 0),ret.addPropertyResult("devices","Devices",properties.Devices!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionDevicePropertyFromCloudFormation)(properties.Devices):void 0),ret.addPropertyResult("initProcessEnabled","InitProcessEnabled",properties.InitProcessEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.InitProcessEnabled):void 0),ret.addPropertyResult("maxSwap","MaxSwap",properties.MaxSwap!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSwap):void 0),ret.addPropertyResult("sharedMemorySize","SharedMemorySize",properties.SharedMemorySize!=null?cfn_parse().FromCloudFormation.getNumber(properties.SharedMemorySize):void 0),ret.addPropertyResult("swappiness","Swappiness",properties.Swappiness!=null?cfn_parse().FromCloudFormation.getNumber(properties.Swappiness):void 0),ret.addPropertyResult("tmpfs","Tmpfs",properties.Tmpfs!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionTmpfsPropertyFromCloudFormation)(properties.Tmpfs):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionMountPointPropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("readOnly",cdk().validateBoolean)(properties.readOnly)),errors.collect(cdk().propertyValidator("sourceVolume",cdk().validateString)(properties.sourceVolume)),errors.wrap('supplied properties not correct for "MountPointProperty"')}function convertCfnTaskDefinitionMountPointPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionMountPointPropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),ReadOnly:cdk().booleanToCloudFormation(properties.readOnly),SourceVolume:cdk().stringToCloudFormation(properties.sourceVolume)}):properties}function CfnTaskDefinitionMountPointPropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("readOnly","ReadOnly",properties.ReadOnly!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReadOnly):void 0),ret.addPropertyResult("sourceVolume","SourceVolume",properties.SourceVolume!=null?cfn_parse().FromCloudFormation.getString(properties.SourceVolume):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionContainerDependencyPropertyValidator(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("condition",cdk().validateString)(properties.condition)),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.wrap('supplied properties not correct for "ContainerDependencyProperty"')}function convertCfnTaskDefinitionContainerDependencyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionContainerDependencyPropertyValidator(properties).assertSuccess(),{Condition:cdk().stringToCloudFormation(properties.condition),ContainerName:cdk().stringToCloudFormation(properties.containerName)}):properties}function CfnTaskDefinitionContainerDependencyPropertyFromCloudFormation(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("condition","Condition",properties.Condition!=null?cfn_parse().FromCloudFormation.getString(properties.Condition):void 0),ret.addPropertyResult("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionPortMappingPropertyValidator(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("appProtocol",cdk().validateString)(properties.appProtocol)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("containerPortRange",cdk().validateString)(properties.containerPortRange)),errors.collect(cdk().propertyValidator("hostPort",cdk().validateNumber)(properties.hostPort)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortMappingProperty"')}function convertCfnTaskDefinitionPortMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionPortMappingPropertyValidator(properties).assertSuccess(),{AppProtocol:cdk().stringToCloudFormation(properties.appProtocol),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),ContainerPortRange:cdk().stringToCloudFormation(properties.containerPortRange),HostPort:cdk().numberToCloudFormation(properties.hostPort),Name:cdk().stringToCloudFormation(properties.name),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnTaskDefinitionPortMappingPropertyFromCloudFormation(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("appProtocol","AppProtocol",properties.AppProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.AppProtocol):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("containerPortRange","ContainerPortRange",properties.ContainerPortRange!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPortRange):void 0),ret.addPropertyResult("hostPort","HostPort",properties.HostPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.HostPort):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionRestartPolicyPropertyValidator(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("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("ignoredExitCodes",cdk().listValidator(cdk().validateNumber))(properties.ignoredExitCodes)),errors.collect(cdk().propertyValidator("restartAttemptPeriod",cdk().validateNumber)(properties.restartAttemptPeriod)),errors.wrap('supplied properties not correct for "RestartPolicyProperty"')}function convertCfnTaskDefinitionRestartPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionRestartPolicyPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),IgnoredExitCodes:cdk().listMapper(cdk().numberToCloudFormation)(properties.ignoredExitCodes),RestartAttemptPeriod:cdk().numberToCloudFormation(properties.restartAttemptPeriod)}):properties}function CfnTaskDefinitionRestartPolicyPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("ignoredExitCodes","IgnoredExitCodes",properties.IgnoredExitCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.IgnoredExitCodes):void 0),ret.addPropertyResult("restartAttemptPeriod","RestartAttemptPeriod",properties.RestartAttemptPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.RestartAttemptPeriod):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionContainerDefinitionPropertyValidator(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("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("cpu",cdk().validateNumber)(properties.cpu)),errors.collect(cdk().propertyValidator("credentialSpecs",cdk().listValidator(cdk().validateString))(properties.credentialSpecs)),errors.collect(cdk().propertyValidator("dependsOn",cdk().listValidator(CfnTaskDefinitionContainerDependencyPropertyValidator))(properties.dependsOn)),errors.collect(cdk().propertyValidator("disableNetworking",cdk().validateBoolean)(properties.disableNetworking)),errors.collect(cdk().propertyValidator("dnsSearchDomains",cdk().listValidator(cdk().validateString))(properties.dnsSearchDomains)),errors.collect(cdk().propertyValidator("dnsServers",cdk().listValidator(cdk().validateString))(properties.dnsServers)),errors.collect(cdk().propertyValidator("dockerLabels",cdk().hashValidator(cdk().validateString))(properties.dockerLabels)),errors.collect(cdk().propertyValidator("dockerSecurityOptions",cdk().listValidator(cdk().validateString))(properties.dockerSecurityOptions)),errors.collect(cdk().propertyValidator("entryPoint",cdk().listValidator(cdk().validateString))(properties.entryPoint)),errors.collect(cdk().propertyValidator("environment",cdk().listValidator(CfnTaskDefinitionKeyValuePairPropertyValidator))(properties.environment)),errors.collect(cdk().propertyValidator("environmentFiles",cdk().listValidator(CfnTaskDefinitionEnvironmentFilePropertyValidator))(properties.environmentFiles)),errors.collect(cdk().propertyValidator("essential",cdk().validateBoolean)(properties.essential)),errors.collect(cdk().propertyValidator("extraHosts",cdk().listValidator(CfnTaskDefinitionHostEntryPropertyValidator))(properties.extraHosts)),errors.collect(cdk().propertyValidator("firelensConfiguration",CfnTaskDefinitionFirelensConfigurationPropertyValidator)(properties.firelensConfiguration)),errors.collect(cdk().propertyValidator("healthCheck",CfnTaskDefinitionHealthCheckPropertyValidator)(properties.healthCheck)),errors.collect(cdk().propertyValidator("hostname",cdk().validateString)(properties.hostname)),errors.collect(cdk().propertyValidator("image",cdk().requiredValidator)(properties.image)),errors.collect(cdk().propertyValidator("image",cdk().validateString)(properties.image)),errors.collect(cdk().propertyValidator("interactive",cdk().validateBoolean)(properties.interactive)),errors.collect(cdk().propertyValidator("links",cdk().listValidator(cdk().validateString))(properties.links)),errors.collect(cdk().propertyValidator("linuxParameters",CfnTaskDefinitionLinuxParametersPropertyValidator)(properties.linuxParameters)),errors.collect(cdk().propertyValidator("logConfiguration",CfnTaskDefinitionLogConfigurationPropertyValidator)(properties.logConfiguration)),errors.collect(cdk().propertyValidator("memory",cdk().validateNumber)(properties.memory)),errors.collect(cdk().propertyValidator("memoryReservation",cdk().validateNumber)(properties.memoryReservation)),errors.collect(cdk().propertyValidator("mountPoints",cdk().listValidator(CfnTaskDefinitionMountPointPropertyValidator))(properties.mountPoints)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("portMappings",cdk().listValidator(CfnTaskDefinitionPortMappingPropertyValidator))(properties.portMappings)),errors.collect(cdk().propertyValidator("privileged",cdk().validateBoolean)(properties.privileged)),errors.collect(cdk().propertyValidator("pseudoTerminal",cdk().validateBoolean)(properties.pseudoTerminal)),errors.collect(cdk().propertyValidator("readonlyRootFilesystem",cdk().validateBoolean)(properties.readonlyRootFilesystem)),errors.collect(cdk().propertyValidator("repositoryCredentials",CfnTaskDefinitionRepositoryCredentialsPropertyValidator)(properties.repositoryCredentials)),errors.collect(cdk().propertyValidator("resourceRequirements",cdk().listValidator(CfnTaskDefinitionResourceRequirementPropertyValidator))(properties.resourceRequirements)),errors.collect(cdk().propertyValidator("restartPolicy",CfnTaskDefinitionRestartPolicyPropertyValidator)(properties.restartPolicy)),errors.collect(cdk().propertyValidator("secrets",cdk().listValidator(CfnTaskDefinitionSecretPropertyValidator))(properties.secrets)),errors.collect(cdk().propertyValidator("startTimeout",cdk().validateNumber)(properties.startTimeout)),errors.collect(cdk().propertyValidator("stopTimeout",cdk().validateNumber)(properties.stopTimeout)),errors.collect(cdk().propertyValidator("systemControls",cdk().listValidator(CfnTaskDefinitionSystemControlPropertyValidator))(properties.systemControls)),errors.collect(cdk().propertyValidator("ulimits",cdk().listValidator(CfnTaskDefinitionUlimitPropertyValidator))(properties.ulimits)),errors.collect(cdk().propertyValidator("user",cdk().validateString)(properties.user)),errors.collect(cdk().propertyValidator("versionConsistency",cdk().validateString)(properties.versionConsistency)),errors.collect(cdk().propertyValidator("volumesFrom",cdk().listValidator(CfnTaskDefinitionVolumeFromPropertyValidator))(properties.volumesFrom)),errors.collect(cdk().propertyValidator("workingDirectory",cdk().validateString)(properties.workingDirectory)),errors.wrap('supplied properties not correct for "ContainerDefinitionProperty"')}function convertCfnTaskDefinitionContainerDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionContainerDefinitionPropertyValidator(properties).assertSuccess(),{Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),Cpu:cdk().numberToCloudFormation(properties.cpu),CredentialSpecs:cdk().listMapper(cdk().stringToCloudFormation)(properties.credentialSpecs),DependsOn:cdk().listMapper(convertCfnTaskDefinitionContainerDependencyPropertyToCloudFormation)(properties.dependsOn),DisableNetworking:cdk().booleanToCloudFormation(properties.disableNetworking),DnsSearchDomains:cdk().listMapper(cdk().stringToCloudFormation)(properties.dnsSearchDomains),DnsServers:cdk().listMapper(cdk().stringToCloudFormation)(properties.dnsServers),DockerLabels:cdk().hashMapper(cdk().stringToCloudFormation)(properties.dockerLabels),DockerSecurityOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.dockerSecurityOptions),EntryPoint:cdk().listMapper(cdk().stringToCloudFormation)(properties.entryPoint),Environment:cdk().listMapper(convertCfnTaskDefinitionKeyValuePairPropertyToCloudFormation)(properties.environment),EnvironmentFiles:cdk().listMapper(convertCfnTaskDefinitionEnvironmentFilePropertyToCloudFormation)(properties.environmentFiles),Essential:cdk().booleanToCloudFormation(properties.essential),ExtraHosts:cdk().listMapper(convertCfnTaskDefinitionHostEntryPropertyToCloudFormation)(properties.extraHosts),FirelensConfiguration:convertCfnTaskDefinitionFirelensConfigurationPropertyToCloudFormation(properties.firelensConfiguration),HealthCheck:convertCfnTaskDefinitionHealthCheckPropertyToCloudFormation(properties.healthCheck),Hostname:cdk().stringToCloudFormation(properties.hostname),Image:cdk().stringToCloudFormation(properties.image),Interactive:cdk().booleanToCloudFormation(properties.interactive),Links:cdk().listMapper(cdk().stringToCloudFormation)(properties.links),LinuxParameters:convertCfnTaskDefinitionLinuxParametersPropertyToCloudFormation(properties.linuxParameters),LogConfiguration:convertCfnTaskDefinitionLogConfigurationPropertyToCloudFormation(properties.logConfiguration),Memory:cdk().numberToCloudFormation(properties.memory),MemoryReservation:cdk().numberToCloudFormation(properties.memoryReservation),MountPoints:cdk().listMapper(convertCfnTaskDefinitionMountPointPropertyToCloudFormation)(properties.mountPoints),Name:cdk().stringToCloudFormation(properties.name),PortMappings:cdk().listMapper(convertCfnTaskDefinitionPortMappingPropertyToCloudFormation)(properties.portMappings),Privileged:cdk().booleanToCloudFormation(properties.privileged),PseudoTerminal:cdk().booleanToCloudFormation(properties.pseudoTerminal),ReadonlyRootFilesystem:cdk().booleanToCloudFormation(properties.readonlyRootFilesystem),RepositoryCredentials:convertCfnTaskDefinitionRepositoryCredentialsPropertyToCloudFormation(properties.repositoryCredentials),ResourceRequirements:cdk().listMapper(convertCfnTaskDefinitionResourceRequirementPropertyToCloudFormation)(properties.resourceRequirements),RestartPolicy:convertCfnTaskDefinitionRestartPolicyPropertyToCloudFormation(properties.restartPolicy),Secrets:cdk().listMapper(convertCfnTaskDefinitionSecretPropertyToCloudFormation)(properties.secrets),StartTimeout:cdk().numberToCloudFormation(properties.startTimeout),StopTimeout:cdk().numberToCloudFormation(properties.stopTimeout),SystemControls:cdk().listMapper(convertCfnTaskDefinitionSystemControlPropertyToCloudFormation)(properties.systemControls),Ulimits:cdk().listMapper(convertCfnTaskDefinitionUlimitPropertyToCloudFormation)(properties.ulimits),User:cdk().stringToCloudFormation(properties.user),VersionConsistency:cdk().stringToCloudFormation(properties.versionConsistency),VolumesFrom:cdk().listMapper(convertCfnTaskDefinitionVolumeFromPropertyToCloudFormation)(properties.volumesFrom),WorkingDirectory:cdk().stringToCloudFormation(properties.workingDirectory)}):properties}function CfnTaskDefinitionContainerDefinitionPropertyFromCloudFormation(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("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getNumber(properties.Cpu):void 0),ret.addPropertyResult("credentialSpecs","CredentialSpecs",properties.CredentialSpecs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CredentialSpecs):void 0),ret.addPropertyResult("dependsOn","DependsOn",properties.DependsOn!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionContainerDependencyPropertyFromCloudFormation)(properties.DependsOn):void 0),ret.addPropertyResult("disableNetworking","DisableNetworking",properties.DisableNetworking!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableNetworking):void 0),ret.addPropertyResult("dnsSearchDomains","DnsSearchDomains",properties.DnsSearchDomains!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DnsSearchDomains):void 0),ret.addPropertyResult("dnsServers","DnsServers",properties.DnsServers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DnsServers):void 0),ret.addPropertyResult("dockerLabels","DockerLabels",properties.DockerLabels!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.DockerLabels):void 0),ret.addPropertyResult("dockerSecurityOptions","DockerSecurityOptions",properties.DockerSecurityOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DockerSecurityOptions):void 0),ret.addPropertyResult("entryPoint","EntryPoint",properties.EntryPoint!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EntryPoint):void 0),ret.addPropertyResult("environment","Environment",properties.Environment!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionKeyValuePairPropertyFromCloudFormation)(properties.Environment):void 0),ret.addPropertyResult("environmentFiles","EnvironmentFiles",properties.EnvironmentFiles!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionEnvironmentFilePropertyFromCloudFormation)(properties.EnvironmentFiles):void 0),ret.addPropertyResult("essential","Essential",properties.Essential!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Essential):void 0),ret.addPropertyResult("extraHosts","ExtraHosts",properties.ExtraHosts!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionHostEntryPropertyFromCloudFormation)(properties.ExtraHosts):void 0),ret.addPropertyResult("firelensConfiguration","FirelensConfiguration",properties.FirelensConfiguration!=null?CfnTaskDefinitionFirelensConfigurationPropertyFromCloudFormation(properties.FirelensConfiguration):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnTaskDefinitionHealthCheckPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?cfn_parse().FromCloudFormation.getString(properties.Hostname):void 0),ret.addPropertyResult("image","Image",properties.Image!=null?cfn_parse().FromCloudFormation.getString(properties.Image):void 0),ret.addPropertyResult("interactive","Interactive",properties.Interactive!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Interactive):void 0),ret.addPropertyResult("links","Links",properties.Links!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Links):void 0),ret.addPropertyResult("linuxParameters","LinuxParameters",properties.LinuxParameters!=null?CfnTaskDefinitionLinuxParametersPropertyFromCloudFormation(properties.LinuxParameters):void 0),ret.addPropertyResult("logConfiguration","LogConfiguration",properties.LogConfiguration!=null?CfnTaskDefinitionLogConfigurationPropertyFromCloudFormation(properties.LogConfiguration):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getNumber(properties.Memory):void 0),ret.addPropertyResult("memoryReservation","MemoryReservation",properties.MemoryReservation!=null?cfn_parse().FromCloudFormation.getNumber(properties.MemoryReservation):void 0),ret.addPropertyResult("mountPoints","MountPoints",properties.MountPoints!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionMountPointPropertyFromCloudFormation)(properties.MountPoints):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("portMappings","PortMappings",properties.PortMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionPortMappingPropertyFromCloudFormation)(properties.PortMappings):void 0),ret.addPropertyResult("privileged","Privileged",properties.Privileged!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Privileged):void 0),ret.addPropertyResult("pseudoTerminal","PseudoTerminal",properties.PseudoTerminal!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PseudoTerminal):void 0),ret.addPropertyResult("readonlyRootFilesystem","ReadonlyRootFilesystem",properties.ReadonlyRootFilesystem!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReadonlyRootFilesystem):void 0),ret.addPropertyResult("repositoryCredentials","RepositoryCredentials",properties.RepositoryCredentials!=null?CfnTaskDefinitionRepositoryCredentialsPropertyFromCloudFormation(properties.RepositoryCredentials):void 0),ret.addPropertyResult("resourceRequirements","ResourceRequirements",properties.ResourceRequirements!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionResourceRequirementPropertyFromCloudFormation)(properties.ResourceRequirements):void 0),ret.addPropertyResult("restartPolicy","RestartPolicy",properties.RestartPolicy!=null?CfnTaskDefinitionRestartPolicyPropertyFromCloudFormation(properties.RestartPolicy):void 0),ret.addPropertyResult("secrets","Secrets",properties.Secrets!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionSecretPropertyFromCloudFormation)(properties.Secrets):void 0),ret.addPropertyResult("startTimeout","StartTimeout",properties.StartTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.StartTimeout):void 0),ret.addPropertyResult("stopTimeout","StopTimeout",properties.StopTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.StopTimeout):void 0),ret.addPropertyResult("systemControls","SystemControls",properties.SystemControls!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionSystemControlPropertyFromCloudFormation)(properties.SystemControls):void 0),ret.addPropertyResult("ulimits","Ulimits",properties.Ulimits!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionUlimitPropertyFromCloudFormation)(properties.Ulimits):void 0),ret.addPropertyResult("user","User",properties.User!=null?cfn_parse().FromCloudFormation.getString(properties.User):void 0),ret.addPropertyResult("versionConsistency","VersionConsistency",properties.VersionConsistency!=null?cfn_parse().FromCloudFormation.getString(properties.VersionConsistency):void 0),ret.addPropertyResult("volumesFrom","VolumesFrom",properties.VolumesFrom!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionVolumeFromPropertyFromCloudFormation)(properties.VolumesFrom):void 0),ret.addPropertyResult("workingDirectory","WorkingDirectory",properties.WorkingDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.WorkingDirectory):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionEphemeralStoragePropertyValidator(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("sizeInGiB",cdk().validateNumber)(properties.sizeInGiB)),errors.wrap('supplied properties not correct for "EphemeralStorageProperty"')}function convertCfnTaskDefinitionEphemeralStoragePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionEphemeralStoragePropertyValidator(properties).assertSuccess(),{SizeInGiB:cdk().numberToCloudFormation(properties.sizeInGiB)}):properties}function CfnTaskDefinitionEphemeralStoragePropertyFromCloudFormation(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("sizeInGiB","SizeInGiB",properties.SizeInGiB!=null?cfn_parse().FromCloudFormation.getNumber(properties.SizeInGiB):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskDefinitionPropsValidator(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("containerDefinitions",cdk().listValidator(CfnTaskDefinitionContainerDefinitionPropertyValidator))(properties.containerDefinitions)),errors.collect(cdk().propertyValidator("cpu",cdk().validateString)(properties.cpu)),errors.collect(cdk().propertyValidator("enableFaultInjection",cdk().validateBoolean)(properties.enableFaultInjection)),errors.collect(cdk().propertyValidator("ephemeralStorage",CfnTaskDefinitionEphemeralStoragePropertyValidator)(properties.ephemeralStorage)),errors.collect(cdk().propertyValidator("executionRoleArn",cdk().validateString)(properties.executionRoleArn)),errors.collect(cdk().propertyValidator("family",cdk().validateString)(properties.family)),errors.collect(cdk().propertyValidator("inferenceAccelerators",cdk().listValidator(CfnTaskDefinitionInferenceAcceleratorPropertyValidator))(properties.inferenceAccelerators)),errors.collect(cdk().propertyValidator("ipcMode",cdk().validateString)(properties.ipcMode)),errors.collect(cdk().propertyValidator("memory",cdk().validateString)(properties.memory)),errors.collect(cdk().propertyValidator("networkMode",cdk().validateString)(properties.networkMode)),errors.collect(cdk().propertyValidator("pidMode",cdk().validateString)(properties.pidMode)),errors.collect(cdk().propertyValidator("placementConstraints",cdk().listValidator(CfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyValidator))(properties.placementConstraints)),errors.collect(cdk().propertyValidator("proxyConfiguration",CfnTaskDefinitionProxyConfigurationPropertyValidator)(properties.proxyConfiguration)),errors.collect(cdk().propertyValidator("requiresCompatibilities",cdk().listValidator(cdk().validateString))(properties.requiresCompatibilities)),errors.collect(cdk().propertyValidator("runtimePlatform",CfnTaskDefinitionRuntimePlatformPropertyValidator)(properties.runtimePlatform)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("taskRoleArn",cdk().validateString)(properties.taskRoleArn)),errors.collect(cdk().propertyValidator("volumes",cdk().listValidator(CfnTaskDefinitionVolumePropertyValidator))(properties.volumes)),errors.wrap('supplied properties not correct for "CfnTaskDefinitionProps"')}function convertCfnTaskDefinitionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskDefinitionPropsValidator(properties).assertSuccess(),{ContainerDefinitions:cdk().listMapper(convertCfnTaskDefinitionContainerDefinitionPropertyToCloudFormation)(properties.containerDefinitions),Cpu:cdk().stringToCloudFormation(properties.cpu),EnableFaultInjection:cdk().booleanToCloudFormation(properties.enableFaultInjection),EphemeralStorage:convertCfnTaskDefinitionEphemeralStoragePropertyToCloudFormation(properties.ephemeralStorage),ExecutionRoleArn:cdk().stringToCloudFormation(properties.executionRoleArn),Family:cdk().stringToCloudFormation(properties.family),InferenceAccelerators:cdk().listMapper(convertCfnTaskDefinitionInferenceAcceleratorPropertyToCloudFormation)(properties.inferenceAccelerators),IpcMode:cdk().stringToCloudFormation(properties.ipcMode),Memory:cdk().stringToCloudFormation(properties.memory),NetworkMode:cdk().stringToCloudFormation(properties.networkMode),PidMode:cdk().stringToCloudFormation(properties.pidMode),PlacementConstraints:cdk().listMapper(convertCfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyToCloudFormation)(properties.placementConstraints),ProxyConfiguration:convertCfnTaskDefinitionProxyConfigurationPropertyToCloudFormation(properties.proxyConfiguration),RequiresCompatibilities:cdk().listMapper(cdk().stringToCloudFormation)(properties.requiresCompatibilities),RuntimePlatform:convertCfnTaskDefinitionRuntimePlatformPropertyToCloudFormation(properties.runtimePlatform),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TaskRoleArn:cdk().stringToCloudFormation(properties.taskRoleArn),Volumes:cdk().listMapper(convertCfnTaskDefinitionVolumePropertyToCloudFormation)(properties.volumes)}):properties}function CfnTaskDefinitionPropsFromCloudFormation(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("containerDefinitions","ContainerDefinitions",properties.ContainerDefinitions!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionContainerDefinitionPropertyFromCloudFormation)(properties.ContainerDefinitions):void 0),ret.addPropertyResult("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getString(properties.Cpu):void 0),ret.addPropertyResult("enableFaultInjection","EnableFaultInjection",properties.EnableFaultInjection!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableFaultInjection):void 0),ret.addPropertyResult("ephemeralStorage","EphemeralStorage",properties.EphemeralStorage!=null?CfnTaskDefinitionEphemeralStoragePropertyFromCloudFormation(properties.EphemeralStorage):void 0),ret.addPropertyResult("executionRoleArn","ExecutionRoleArn",properties.ExecutionRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRoleArn):void 0),ret.addPropertyResult("family","Family",properties.Family!=null?cfn_parse().FromCloudFormation.getString(properties.Family):void 0),ret.addPropertyResult("inferenceAccelerators","InferenceAccelerators",properties.InferenceAccelerators!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionInferenceAcceleratorPropertyFromCloudFormation)(properties.InferenceAccelerators):void 0),ret.addPropertyResult("ipcMode","IpcMode",properties.IpcMode!=null?cfn_parse().FromCloudFormation.getString(properties.IpcMode):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getString(properties.Memory):void 0),ret.addPropertyResult("networkMode","NetworkMode",properties.NetworkMode!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkMode):void 0),ret.addPropertyResult("pidMode","PidMode",properties.PidMode!=null?cfn_parse().FromCloudFormation.getString(properties.PidMode):void 0),ret.addPropertyResult("placementConstraints","PlacementConstraints",properties.PlacementConstraints!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionTaskDefinitionPlacementConstraintPropertyFromCloudFormation)(properties.PlacementConstraints):void 0),ret.addPropertyResult("proxyConfiguration","ProxyConfiguration",properties.ProxyConfiguration!=null?CfnTaskDefinitionProxyConfigurationPropertyFromCloudFormation(properties.ProxyConfiguration):void 0),ret.addPropertyResult("requiresCompatibilities","RequiresCompatibilities",properties.RequiresCompatibilities!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RequiresCompatibilities):void 0),ret.addPropertyResult("runtimePlatform","RuntimePlatform",properties.RuntimePlatform!=null?CfnTaskDefinitionRuntimePlatformPropertyFromCloudFormation(properties.RuntimePlatform):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("taskRoleArn","TaskRoleArn",properties.TaskRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.TaskRoleArn):void 0),ret.addPropertyResult("volumes","Volumes",properties.Volumes!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskDefinitionVolumePropertyFromCloudFormation)(properties.Volumes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTaskSet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnTaskSet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::TaskSet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTaskSetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTaskSet(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 isCfnTaskSet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTaskSet.CFN_RESOURCE_TYPE_NAME}_capacityProviderStrategy;cdkTagManager;_cluster;_externalId;_launchType;_loadBalancers;_networkConfiguration;_platformVersion;_scale;_service;_serviceRegistries;_tags;_taskDefinition;cfnPropertyNames={capacityProviderStrategy:"CapacityProviderStrategy",tags:"Tags",cluster:"Cluster",externalId:"ExternalId",launchType:"LaunchType",loadBalancers:"LoadBalancers",networkConfiguration:"NetworkConfiguration",platformVersion:"PlatformVersion",scale:"Scale",service:"Service",serviceRegistries:"ServiceRegistries",taskDefinition:"TaskDefinition"};constructor(scope,id,props){super(scope,id,{type:CfnTaskSet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnTaskSetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTaskSet),error}cdk().requireProperty(props,"cluster",this),cdk().requireProperty(props,"service",this),cdk().requireProperty(props,"taskDefinition",this),this._capacityProviderStrategy=props.capacityProviderStrategy,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::TaskSet",void 0,{tagPropertyName:"tags"}),this._cluster=props.cluster,this._externalId=props.externalId,this._launchType=props.launchType,this._loadBalancers=props.loadBalancers,this._networkConfiguration=props.networkConfiguration,this._platformVersion=props.platformVersion,this._scale=props.scale,this._service=props.service,this._serviceRegistries=props.serviceRegistries,this._tags=props.tags,this._taskDefinition=props.taskDefinition}get taskSetRef(){return{cluster:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),service:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),taskSetId:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get capacityProviderStrategy(){return this._capacityProviderStrategy}set capacityProviderStrategy(value){cdk().traceProperty(this.node,"CapacityProviderStrategy"),this._capacityProviderStrategy=value}get cluster(){return this._cluster}set cluster(value){cdk().traceProperty(this.node,"Cluster"),this._cluster=value}get externalId(){return this._externalId}set externalId(value){cdk().traceProperty(this.node,"ExternalId"),this._externalId=value}get launchType(){return this._launchType}set launchType(value){cdk().traceProperty(this.node,"LaunchType"),this._launchType=value}get loadBalancers(){return this._loadBalancers}set loadBalancers(value){cdk().traceProperty(this.node,"LoadBalancers"),this._loadBalancers=value}get networkConfiguration(){return this._networkConfiguration}set networkConfiguration(value){cdk().traceProperty(this.node,"NetworkConfiguration"),this._networkConfiguration=value}get platformVersion(){return this._platformVersion}set platformVersion(value){cdk().traceProperty(this.node,"PlatformVersion"),this._platformVersion=value}get scale(){return this._scale}set scale(value){cdk().traceProperty(this.node,"Scale"),this._scale=value}get service(){return this._service}set service(value){cdk().traceProperty(this.node,"Service"),this._service=value}get serviceRegistries(){return this._serviceRegistries}set serviceRegistries(value){cdk().traceProperty(this.node,"ServiceRegistries"),this._serviceRegistries=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get taskDefinition(){return this._taskDefinition}set taskDefinition(value){cdk().traceProperty(this.node,"TaskDefinition"),this._taskDefinition=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{capacityProviderStrategy:this._capacityProviderStrategy,tags:this.cdkTagManager.renderTags(this._tags),cluster:this._cluster,externalId:this._externalId,launchType:this._launchType,loadBalancers:this._loadBalancers,networkConfiguration:this._networkConfiguration,platformVersion:this._platformVersion,scale:this._scale,service:this._service,serviceRegistries:this._serviceRegistries,taskDefinition:this._taskDefinition}}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",CfnTaskSet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTaskSetPropsToCloudFormation(props)}}exports.CfnTaskSet=CfnTaskSet;function CfnTaskSetLoadBalancerPropertyValidator(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("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("targetGroupArn",cdk().validateString)(properties.targetGroupArn)),errors.wrap('supplied properties not correct for "LoadBalancerProperty"')}function convertCfnTaskSetLoadBalancerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetLoadBalancerPropertyValidator(properties).assertSuccess(),{ContainerName:cdk().stringToCloudFormation(properties.containerName),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),TargetGroupArn:cdk().stringToCloudFormation(properties.targetGroupArn)}):properties}function CfnTaskSetLoadBalancerPropertyFromCloudFormation(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("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("targetGroupArn","TargetGroupArn",properties.TargetGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetAwsVpcConfigurationPropertyValidator(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("assignPublicIp",cdk().validateString)(properties.assignPublicIp)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("subnets",cdk().requiredValidator)(properties.subnets)),errors.collect(cdk().propertyValidator("subnets",cdk().listValidator(cdk().validateString))(properties.subnets)),errors.wrap('supplied properties not correct for "AwsVpcConfigurationProperty"')}function convertCfnTaskSetAwsVpcConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetAwsVpcConfigurationPropertyValidator(properties).assertSuccess(),{AssignPublicIp:cdk().stringToCloudFormation(properties.assignPublicIp),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),Subnets:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnets)}):properties}function CfnTaskSetAwsVpcConfigurationPropertyFromCloudFormation(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("assignPublicIp","AssignPublicIp",properties.AssignPublicIp!=null?cfn_parse().FromCloudFormation.getString(properties.AssignPublicIp):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("subnets","Subnets",properties.Subnets!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Subnets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetNetworkConfigurationPropertyValidator(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("awsVpcConfiguration",CfnTaskSetAwsVpcConfigurationPropertyValidator)(properties.awsVpcConfiguration)),errors.wrap('supplied properties not correct for "NetworkConfigurationProperty"')}function convertCfnTaskSetNetworkConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetNetworkConfigurationPropertyValidator(properties).assertSuccess(),{AwsVpcConfiguration:convertCfnTaskSetAwsVpcConfigurationPropertyToCloudFormation(properties.awsVpcConfiguration)}):properties}function CfnTaskSetNetworkConfigurationPropertyFromCloudFormation(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("awsVpcConfiguration","AwsVpcConfiguration",properties.AwsVpcConfiguration!=null?CfnTaskSetAwsVpcConfigurationPropertyFromCloudFormation(properties.AwsVpcConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetScalePropertyValidator(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("unit",cdk().validateString)(properties.unit)),errors.collect(cdk().propertyValidator("value",cdk().validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "ScaleProperty"')}function convertCfnTaskSetScalePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetScalePropertyValidator(properties).assertSuccess(),{Unit:cdk().stringToCloudFormation(properties.unit),Value:cdk().numberToCloudFormation(properties.value)}):properties}function CfnTaskSetScalePropertyFromCloudFormation(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("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetServiceRegistryPropertyValidator(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("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("registryArn",cdk().validateString)(properties.registryArn)),errors.wrap('supplied properties not correct for "ServiceRegistryProperty"')}function convertCfnTaskSetServiceRegistryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetServiceRegistryPropertyValidator(properties).assertSuccess(),{ContainerName:cdk().stringToCloudFormation(properties.containerName),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),Port:cdk().numberToCloudFormation(properties.port),RegistryArn:cdk().stringToCloudFormation(properties.registryArn)}):properties}function CfnTaskSetServiceRegistryPropertyFromCloudFormation(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("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("registryArn","RegistryArn",properties.RegistryArn!=null?cfn_parse().FromCloudFormation.getString(properties.RegistryArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetCapacityProviderStrategyItemPropertyValidator(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("base",cdk().validateNumber)(properties.base)),errors.collect(cdk().propertyValidator("capacityProvider",cdk().validateString)(properties.capacityProvider)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "CapacityProviderStrategyItemProperty"')}function convertCfnTaskSetCapacityProviderStrategyItemPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetCapacityProviderStrategyItemPropertyValidator(properties).assertSuccess(),{Base:cdk().numberToCloudFormation(properties.base),CapacityProvider:cdk().stringToCloudFormation(properties.capacityProvider),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnTaskSetCapacityProviderStrategyItemPropertyFromCloudFormation(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("base","Base",properties.Base!=null?cfn_parse().FromCloudFormation.getNumber(properties.Base):void 0),ret.addPropertyResult("capacityProvider","CapacityProvider",properties.CapacityProvider!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityProvider):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTaskSetPropsValidator(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("capacityProviderStrategy",cdk().listValidator(CfnTaskSetCapacityProviderStrategyItemPropertyValidator))(properties.capacityProviderStrategy)),errors.collect(cdk().propertyValidator("cluster",cdk().requiredValidator)(properties.cluster)),errors.collect(cdk().propertyValidator("cluster",cdk().validateString)(properties.cluster)),errors.collect(cdk().propertyValidator("externalId",cdk().validateString)(properties.externalId)),errors.collect(cdk().propertyValidator("launchType",cdk().validateString)(properties.launchType)),errors.collect(cdk().propertyValidator("loadBalancers",cdk().listValidator(CfnTaskSetLoadBalancerPropertyValidator))(properties.loadBalancers)),errors.collect(cdk().propertyValidator("networkConfiguration",CfnTaskSetNetworkConfigurationPropertyValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("platformVersion",cdk().validateString)(properties.platformVersion)),errors.collect(cdk().propertyValidator("scale",CfnTaskSetScalePropertyValidator)(properties.scale)),errors.collect(cdk().propertyValidator("service",cdk().requiredValidator)(properties.service)),errors.collect(cdk().propertyValidator("service",cdk().validateString)(properties.service)),errors.collect(cdk().propertyValidator("serviceRegistries",cdk().listValidator(CfnTaskSetServiceRegistryPropertyValidator))(properties.serviceRegistries)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("taskDefinition",cdk().requiredValidator)(properties.taskDefinition)),errors.collect(cdk().propertyValidator("taskDefinition",cdk().validateString)(properties.taskDefinition)),errors.wrap('supplied properties not correct for "CfnTaskSetProps"')}function convertCfnTaskSetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTaskSetPropsValidator(properties).assertSuccess(),{CapacityProviderStrategy:cdk().listMapper(convertCfnTaskSetCapacityProviderStrategyItemPropertyToCloudFormation)(properties.capacityProviderStrategy),Cluster:cdk().stringToCloudFormation(properties.cluster),ExternalId:cdk().stringToCloudFormation(properties.externalId),LaunchType:cdk().stringToCloudFormation(properties.launchType),LoadBalancers:cdk().listMapper(convertCfnTaskSetLoadBalancerPropertyToCloudFormation)(properties.loadBalancers),NetworkConfiguration:convertCfnTaskSetNetworkConfigurationPropertyToCloudFormation(properties.networkConfiguration),PlatformVersion:cdk().stringToCloudFormation(properties.platformVersion),Scale:convertCfnTaskSetScalePropertyToCloudFormation(properties.scale),Service:cdk().stringToCloudFormation(properties.service),ServiceRegistries:cdk().listMapper(convertCfnTaskSetServiceRegistryPropertyToCloudFormation)(properties.serviceRegistries),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TaskDefinition:cdk().stringToCloudFormation(properties.taskDefinition)}):properties}function CfnTaskSetPropsFromCloudFormation(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("capacityProviderStrategy","CapacityProviderStrategy",properties.CapacityProviderStrategy!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskSetCapacityProviderStrategyItemPropertyFromCloudFormation)(properties.CapacityProviderStrategy):void 0),ret.addPropertyResult("cluster","Cluster",properties.Cluster!=null?cfn_parse().FromCloudFormation.getString(properties.Cluster):void 0),ret.addPropertyResult("externalId","ExternalId",properties.ExternalId!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalId):void 0),ret.addPropertyResult("launchType","LaunchType",properties.LaunchType!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchType):void 0),ret.addPropertyResult("loadBalancers","LoadBalancers",properties.LoadBalancers!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskSetLoadBalancerPropertyFromCloudFormation)(properties.LoadBalancers):void 0),ret.addPropertyResult("networkConfiguration","NetworkConfiguration",properties.NetworkConfiguration!=null?CfnTaskSetNetworkConfigurationPropertyFromCloudFormation(properties.NetworkConfiguration):void 0),ret.addPropertyResult("platformVersion","PlatformVersion",properties.PlatformVersion!=null?cfn_parse().FromCloudFormation.getString(properties.PlatformVersion):void 0),ret.addPropertyResult("scale","Scale",properties.Scale!=null?CfnTaskSetScalePropertyFromCloudFormation(properties.Scale):void 0),ret.addPropertyResult("service","Service",properties.Service!=null?cfn_parse().FromCloudFormation.getString(properties.Service):void 0),ret.addPropertyResult("serviceRegistries","ServiceRegistries",properties.ServiceRegistries!=null?cfn_parse().FromCloudFormation.getArray(CfnTaskSetServiceRegistryPropertyFromCloudFormation)(properties.ServiceRegistries):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("taskDefinition","TaskDefinition",properties.TaskDefinition!=null?cfn_parse().FromCloudFormation.getString(properties.TaskDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDaemon extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnDaemon",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::Daemon";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDaemonPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDaemon(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 isCfnDaemon(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDaemon.CFN_RESOURCE_TYPE_NAME}static arnForDaemon(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_IDaemonRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDaemon),error}return resource.daemonRef.daemonArn}_capacityProviderArns;cdkTagManager;_clusterArn;_daemonName;_daemonTaskDefinitionArn;_deploymentConfiguration;_enableEcsManagedTags;_enableExecuteCommand;_propagateTags;_tags;cfnPropertyNames={capacityProviderArns:"CapacityProviderArns",tags:"Tags",clusterArn:"ClusterArn",daemonName:"DaemonName",daemonTaskDefinitionArn:"DaemonTaskDefinitionArn",deploymentConfiguration:"DeploymentConfiguration",enableEcsManagedTags:"EnableECSManagedTags",enableExecuteCommand:"EnableExecuteCommand",propagateTags:"PropagateTags"};constructor(scope,id,props={}){super(scope,id,{type:CfnDaemon.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnDaemonProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDaemon),error}this._capacityProviderArns=props.capacityProviderArns,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::Daemon",void 0,{tagPropertyName:"tags"}),this._clusterArn=props.clusterArn,this._daemonName=props.daemonName,this._daemonTaskDefinitionArn=props.daemonTaskDefinitionArn,this._deploymentConfiguration=props.deploymentConfiguration,this._enableEcsManagedTags=props.enableEcsManagedTags,this._enableExecuteCommand=props.enableExecuteCommand,this._propagateTags=props.propagateTags,this._tags=props.tags}get daemonRef(){return{daemonArn:this.ref}}get capacityProviderArns(){return this._capacityProviderArns}set capacityProviderArns(value){cdk().traceProperty(this.node,"CapacityProviderArns"),this._capacityProviderArns=value}get clusterArn(){return this._clusterArn}set clusterArn(value){cdk().traceProperty(this.node,"ClusterArn"),this._clusterArn=value}get daemonName(){return this._daemonName}set daemonName(value){cdk().traceProperty(this.node,"DaemonName"),this._daemonName=value}get daemonTaskDefinitionArn(){return this._daemonTaskDefinitionArn}set daemonTaskDefinitionArn(value){cdk().traceProperty(this.node,"DaemonTaskDefinitionArn"),this._daemonTaskDefinitionArn=value}get deploymentConfiguration(){return this._deploymentConfiguration}set deploymentConfiguration(value){cdk().traceProperty(this.node,"DeploymentConfiguration"),this._deploymentConfiguration=value}get enableEcsManagedTags(){return this._enableEcsManagedTags}set enableEcsManagedTags(value){cdk().traceProperty(this.node,"EnableECSManagedTags"),this._enableEcsManagedTags=value}get enableExecuteCommand(){return this._enableExecuteCommand}set enableExecuteCommand(value){cdk().traceProperty(this.node,"EnableExecuteCommand"),this._enableExecuteCommand=value}get propagateTags(){return this._propagateTags}set propagateTags(value){cdk().traceProperty(this.node,"PropagateTags"),this._propagateTags=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrDaemonArn(){return cdk().Token.asString(this.getAtt("DaemonArn",cdk().ResolutionTypeHint.STRING))}get attrDaemonStatus(){return cdk().Token.asString(this.getAtt("DaemonStatus",cdk().ResolutionTypeHint.STRING))}get attrDeploymentArn(){return cdk().Token.asString(this.getAtt("DeploymentArn",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{capacityProviderArns:this._capacityProviderArns,tags:this.cdkTagManager.renderTags(this._tags),clusterArn:this._clusterArn,daemonName:this._daemonName,daemonTaskDefinitionArn:this._daemonTaskDefinitionArn,deploymentConfiguration:this._deploymentConfiguration,enableEcsManagedTags:this._enableEcsManagedTags,enableExecuteCommand:this._enableExecuteCommand,propagateTags:this._propagateTags}}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",CfnDaemon.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDaemonPropsToCloudFormation(props)}}exports.CfnDaemon=CfnDaemon;function CfnDaemonDaemonAlarmConfigurationPropertyValidator(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("alarmNames",cdk().listValidator(cdk().validateString))(properties.alarmNames)),errors.collect(cdk().propertyValidator("enable",cdk().validateBoolean)(properties.enable)),errors.wrap('supplied properties not correct for "DaemonAlarmConfigurationProperty"')}function convertCfnDaemonDaemonAlarmConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonDaemonAlarmConfigurationPropertyValidator(properties).assertSuccess(),{AlarmNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.alarmNames),Enable:cdk().booleanToCloudFormation(properties.enable)}):properties}function CfnDaemonDaemonAlarmConfigurationPropertyFromCloudFormation(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("alarmNames","AlarmNames",properties.AlarmNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AlarmNames):void 0),ret.addPropertyResult("enable","Enable",properties.Enable!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enable):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonDaemonDeploymentConfigurationPropertyValidator(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("alarms",CfnDaemonDaemonAlarmConfigurationPropertyValidator)(properties.alarms)),errors.collect(cdk().propertyValidator("bakeTimeInMinutes",cdk().validateNumber)(properties.bakeTimeInMinutes)),errors.collect(cdk().propertyValidator("drainPercent",cdk().validateNumber)(properties.drainPercent)),errors.wrap('supplied properties not correct for "DaemonDeploymentConfigurationProperty"')}function convertCfnDaemonDaemonDeploymentConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonDaemonDeploymentConfigurationPropertyValidator(properties).assertSuccess(),{Alarms:convertCfnDaemonDaemonAlarmConfigurationPropertyToCloudFormation(properties.alarms),BakeTimeInMinutes:cdk().numberToCloudFormation(properties.bakeTimeInMinutes),DrainPercent:cdk().numberToCloudFormation(properties.drainPercent)}):properties}function CfnDaemonDaemonDeploymentConfigurationPropertyFromCloudFormation(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("alarms","Alarms",properties.Alarms!=null?CfnDaemonDaemonAlarmConfigurationPropertyFromCloudFormation(properties.Alarms):void 0),ret.addPropertyResult("bakeTimeInMinutes","BakeTimeInMinutes",properties.BakeTimeInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.BakeTimeInMinutes):void 0),ret.addPropertyResult("drainPercent","DrainPercent",properties.DrainPercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.DrainPercent):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonPropsValidator(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("capacityProviderArns",cdk().listValidator(cdk().validateString))(properties.capacityProviderArns)),errors.collect(cdk().propertyValidator("clusterArn",cdk().validateString)(properties.clusterArn)),errors.collect(cdk().propertyValidator("daemonName",cdk().validateString)(properties.daemonName)),errors.collect(cdk().propertyValidator("daemonTaskDefinitionArn",cdk().validateString)(properties.daemonTaskDefinitionArn)),errors.collect(cdk().propertyValidator("deploymentConfiguration",CfnDaemonDaemonDeploymentConfigurationPropertyValidator)(properties.deploymentConfiguration)),errors.collect(cdk().propertyValidator("enableEcsManagedTags",cdk().validateBoolean)(properties.enableEcsManagedTags)),errors.collect(cdk().propertyValidator("enableExecuteCommand",cdk().validateBoolean)(properties.enableExecuteCommand)),errors.collect(cdk().propertyValidator("propagateTags",cdk().validateString)(properties.propagateTags)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDaemonProps"')}function convertCfnDaemonPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonPropsValidator(properties).assertSuccess(),{CapacityProviderArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.capacityProviderArns),ClusterArn:cdk().stringToCloudFormation(properties.clusterArn),DaemonName:cdk().stringToCloudFormation(properties.daemonName),DaemonTaskDefinitionArn:cdk().stringToCloudFormation(properties.daemonTaskDefinitionArn),DeploymentConfiguration:convertCfnDaemonDaemonDeploymentConfigurationPropertyToCloudFormation(properties.deploymentConfiguration),EnableECSManagedTags:cdk().booleanToCloudFormation(properties.enableEcsManagedTags),EnableExecuteCommand:cdk().booleanToCloudFormation(properties.enableExecuteCommand),PropagateTags:cdk().stringToCloudFormation(properties.propagateTags),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDaemonPropsFromCloudFormation(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("capacityProviderArns","CapacityProviderArns",properties.CapacityProviderArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CapacityProviderArns):void 0),ret.addPropertyResult("clusterArn","ClusterArn",properties.ClusterArn!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterArn):void 0),ret.addPropertyResult("daemonName","DaemonName",properties.DaemonName!=null?cfn_parse().FromCloudFormation.getString(properties.DaemonName):void 0),ret.addPropertyResult("daemonTaskDefinitionArn","DaemonTaskDefinitionArn",properties.DaemonTaskDefinitionArn!=null?cfn_parse().FromCloudFormation.getString(properties.DaemonTaskDefinitionArn):void 0),ret.addPropertyResult("deploymentConfiguration","DeploymentConfiguration",properties.DeploymentConfiguration!=null?CfnDaemonDaemonDeploymentConfigurationPropertyFromCloudFormation(properties.DeploymentConfiguration):void 0),ret.addPropertyResult("enableEcsManagedTags","EnableECSManagedTags",properties.EnableECSManagedTags!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableECSManagedTags):void 0),ret.addPropertyResult("enableExecuteCommand","EnableExecuteCommand",properties.EnableExecuteCommand!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableExecuteCommand):void 0),ret.addPropertyResult("propagateTags","PropagateTags",properties.PropagateTags!=null?cfn_parse().FromCloudFormation.getString(properties.PropagateTags):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDaemonTaskDefinition extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnDaemonTaskDefinition",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::DaemonTaskDefinition";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDaemonTaskDefinitionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDaemonTaskDefinition(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 isCfnDaemonTaskDefinition(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDaemonTaskDefinition.CFN_RESOURCE_TYPE_NAME}static arnForDaemonTaskDefinition(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ecs_IDaemonTaskDefinitionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDaemonTaskDefinition),error}return resource.daemonTaskDefinitionRef.daemonTaskDefinitionArn}cdkTagManager;_containerDefinitions;_cpu;_executionRoleArn;_family;_memory;_tags;_taskRoleArn;_volumes;cfnPropertyNames={tags:"Tags",containerDefinitions:"ContainerDefinitions",cpu:"Cpu",executionRoleArn:"ExecutionRoleArn",family:"Family",memory:"Memory",taskRoleArn:"TaskRoleArn",volumes:"Volumes"};constructor(scope,id,props={}){super(scope,id,{type:CfnDaemonTaskDefinition.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnDaemonTaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDaemonTaskDefinition),error}this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::DaemonTaskDefinition",void 0,{tagPropertyName:"tags"}),this._containerDefinitions=props.containerDefinitions,this._cpu=props.cpu,this._executionRoleArn=props.executionRoleArn,this._family=props.family,this._memory=props.memory,this._tags=props.tags,this._taskRoleArn=props.taskRoleArn,this._volumes=props.volumes}get daemonTaskDefinitionRef(){return{daemonTaskDefinitionArn:this.ref}}get containerDefinitions(){return this._containerDefinitions}set containerDefinitions(value){cdk().traceProperty(this.node,"ContainerDefinitions"),this._containerDefinitions=value}get cpu(){return this._cpu}set cpu(value){cdk().traceProperty(this.node,"Cpu"),this._cpu=value}get executionRoleArn(){return this._executionRoleArn}set executionRoleArn(value){cdk().traceProperty(this.node,"ExecutionRoleArn"),this._executionRoleArn=value}get family(){return this._family}set family(value){cdk().traceProperty(this.node,"Family"),this._family=value}get memory(){return this._memory}set memory(value){cdk().traceProperty(this.node,"Memory"),this._memory=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get taskRoleArn(){return this._taskRoleArn}set taskRoleArn(value){cdk().traceProperty(this.node,"TaskRoleArn"),this._taskRoleArn=value}get volumes(){return this._volumes}set volumes(value){cdk().traceProperty(this.node,"Volumes"),this._volumes=value}get attrDaemonTaskDefinitionArn(){return cdk().Token.asString(this.getAtt("DaemonTaskDefinitionArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),containerDefinitions:this._containerDefinitions,cpu:this._cpu,executionRoleArn:this._executionRoleArn,family:this._family,memory:this._memory,taskRoleArn:this._taskRoleArn,volumes:this._volumes}}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",CfnDaemonTaskDefinition.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDaemonTaskDefinitionPropsToCloudFormation(props)}}exports.CfnDaemonTaskDefinition=CfnDaemonTaskDefinition;function CfnDaemonTaskDefinitionHostVolumePropertiesPropertyValidator(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("sourcePath",cdk().validateString)(properties.sourcePath)),errors.wrap('supplied properties not correct for "HostVolumePropertiesProperty"')}function convertCfnDaemonTaskDefinitionHostVolumePropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionHostVolumePropertiesPropertyValidator(properties).assertSuccess(),{SourcePath:cdk().stringToCloudFormation(properties.sourcePath)}):properties}function CfnDaemonTaskDefinitionHostVolumePropertiesPropertyFromCloudFormation(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("sourcePath","SourcePath",properties.SourcePath!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionVolumePropertyValidator(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("host",CfnDaemonTaskDefinitionHostVolumePropertiesPropertyValidator)(properties.host)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "VolumeProperty"')}function convertCfnDaemonTaskDefinitionVolumePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionVolumePropertyValidator(properties).assertSuccess(),{Host:convertCfnDaemonTaskDefinitionHostVolumePropertiesPropertyToCloudFormation(properties.host),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnDaemonTaskDefinitionVolumePropertyFromCloudFormation(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("host","Host",properties.Host!=null?CfnDaemonTaskDefinitionHostVolumePropertiesPropertyFromCloudFormation(properties.Host):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionSecretPropertyValidator(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("valueFrom",cdk().requiredValidator)(properties.valueFrom)),errors.collect(cdk().propertyValidator("valueFrom",cdk().validateString)(properties.valueFrom)),errors.wrap('supplied properties not correct for "SecretProperty"')}function convertCfnDaemonTaskDefinitionSecretPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionSecretPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ValueFrom:cdk().stringToCloudFormation(properties.valueFrom)}):properties}function CfnDaemonTaskDefinitionSecretPropertyFromCloudFormation(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("valueFrom","ValueFrom",properties.ValueFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValueFrom):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionHealthCheckPropertyValidator(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("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("retries",cdk().validateNumber)(properties.retries)),errors.collect(cdk().propertyValidator("startPeriod",cdk().validateNumber)(properties.startPeriod)),errors.collect(cdk().propertyValidator("timeout",cdk().validateNumber)(properties.timeout)),errors.wrap('supplied properties not correct for "HealthCheckProperty"')}function convertCfnDaemonTaskDefinitionHealthCheckPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionHealthCheckPropertyValidator(properties).assertSuccess(),{Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),Interval:cdk().numberToCloudFormation(properties.interval),Retries:cdk().numberToCloudFormation(properties.retries),StartPeriod:cdk().numberToCloudFormation(properties.startPeriod),Timeout:cdk().numberToCloudFormation(properties.timeout)}):properties}function CfnDaemonTaskDefinitionHealthCheckPropertyFromCloudFormation(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("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("retries","Retries",properties.Retries!=null?cfn_parse().FromCloudFormation.getNumber(properties.Retries):void 0),ret.addPropertyResult("startPeriod","StartPeriod",properties.StartPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.StartPeriod):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionLogConfigurationPropertyValidator(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("logDriver",cdk().requiredValidator)(properties.logDriver)),errors.collect(cdk().propertyValidator("logDriver",cdk().validateString)(properties.logDriver)),errors.collect(cdk().propertyValidator("options",cdk().hashValidator(cdk().validateString))(properties.options)),errors.collect(cdk().propertyValidator("secretOptions",cdk().listValidator(CfnDaemonTaskDefinitionSecretPropertyValidator))(properties.secretOptions)),errors.wrap('supplied properties not correct for "LogConfigurationProperty"')}function convertCfnDaemonTaskDefinitionLogConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionLogConfigurationPropertyValidator(properties).assertSuccess(),{LogDriver:cdk().stringToCloudFormation(properties.logDriver),Options:cdk().hashMapper(cdk().stringToCloudFormation)(properties.options),SecretOptions:cdk().listMapper(convertCfnDaemonTaskDefinitionSecretPropertyToCloudFormation)(properties.secretOptions)}):properties}function CfnDaemonTaskDefinitionLogConfigurationPropertyFromCloudFormation(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("logDriver","LogDriver",properties.LogDriver!=null?cfn_parse().FromCloudFormation.getString(properties.LogDriver):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Options):void 0),ret.addPropertyResult("secretOptions","SecretOptions",properties.SecretOptions!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionSecretPropertyFromCloudFormation)(properties.SecretOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionEnvironmentFilePropertyValidator(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("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "EnvironmentFileProperty"')}function convertCfnDaemonTaskDefinitionEnvironmentFilePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionEnvironmentFilePropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnDaemonTaskDefinitionEnvironmentFilePropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionFirelensConfigurationPropertyValidator(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("options",cdk().hashValidator(cdk().validateString))(properties.options)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "FirelensConfigurationProperty"')}function convertCfnDaemonTaskDefinitionFirelensConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionFirelensConfigurationPropertyValidator(properties).assertSuccess(),{Options:cdk().hashMapper(cdk().stringToCloudFormation)(properties.options),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnDaemonTaskDefinitionFirelensConfigurationPropertyFromCloudFormation(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("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Options):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionSystemControlPropertyValidator(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("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "SystemControlProperty"')}function convertCfnDaemonTaskDefinitionSystemControlPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionSystemControlPropertyValidator(properties).assertSuccess(),{Namespace:cdk().stringToCloudFormation(properties.namespace),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnDaemonTaskDefinitionSystemControlPropertyFromCloudFormation(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("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionUlimitPropertyValidator(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("hardLimit",cdk().requiredValidator)(properties.hardLimit)),errors.collect(cdk().propertyValidator("hardLimit",cdk().validateNumber)(properties.hardLimit)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("softLimit",cdk().requiredValidator)(properties.softLimit)),errors.collect(cdk().propertyValidator("softLimit",cdk().validateNumber)(properties.softLimit)),errors.wrap('supplied properties not correct for "UlimitProperty"')}function convertCfnDaemonTaskDefinitionUlimitPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionUlimitPropertyValidator(properties).assertSuccess(),{HardLimit:cdk().numberToCloudFormation(properties.hardLimit),Name:cdk().stringToCloudFormation(properties.name),SoftLimit:cdk().numberToCloudFormation(properties.softLimit)}):properties}function CfnDaemonTaskDefinitionUlimitPropertyFromCloudFormation(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("hardLimit","HardLimit",properties.HardLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HardLimit):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("softLimit","SoftLimit",properties.SoftLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.SoftLimit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionRepositoryCredentialsPropertyValidator(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("credentialsParameter",cdk().validateString)(properties.credentialsParameter)),errors.wrap('supplied properties not correct for "RepositoryCredentialsProperty"')}function convertCfnDaemonTaskDefinitionRepositoryCredentialsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionRepositoryCredentialsPropertyValidator(properties).assertSuccess(),{CredentialsParameter:cdk().stringToCloudFormation(properties.credentialsParameter)}):properties}function CfnDaemonTaskDefinitionRepositoryCredentialsPropertyFromCloudFormation(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("credentialsParameter","CredentialsParameter",properties.CredentialsParameter!=null?cfn_parse().FromCloudFormation.getString(properties.CredentialsParameter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionKernelCapabilitiesPropertyValidator(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("add",cdk().listValidator(cdk().validateString))(properties.add)),errors.collect(cdk().propertyValidator("drop",cdk().listValidator(cdk().validateString))(properties.drop)),errors.wrap('supplied properties not correct for "KernelCapabilitiesProperty"')}function convertCfnDaemonTaskDefinitionKernelCapabilitiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionKernelCapabilitiesPropertyValidator(properties).assertSuccess(),{Add:cdk().listMapper(cdk().stringToCloudFormation)(properties.add),Drop:cdk().listMapper(cdk().stringToCloudFormation)(properties.drop)}):properties}function CfnDaemonTaskDefinitionKernelCapabilitiesPropertyFromCloudFormation(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("add","Add",properties.Add!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Add):void 0),ret.addPropertyResult("drop","Drop",properties.Drop!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Drop):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionTmpfsPropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("mountOptions",cdk().listValidator(cdk().validateString))(properties.mountOptions)),errors.collect(cdk().propertyValidator("size",cdk().requiredValidator)(properties.size)),errors.collect(cdk().propertyValidator("size",cdk().validateNumber)(properties.size)),errors.wrap('supplied properties not correct for "TmpfsProperty"')}function convertCfnDaemonTaskDefinitionTmpfsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionTmpfsPropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),MountOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.mountOptions),Size:cdk().numberToCloudFormation(properties.size)}):properties}function CfnDaemonTaskDefinitionTmpfsPropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("mountOptions","MountOptions",properties.MountOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MountOptions):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse().FromCloudFormation.getNumber(properties.Size):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionDevicePropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("hostPath",cdk().validateString)(properties.hostPath)),errors.collect(cdk().propertyValidator("permissions",cdk().listValidator(cdk().validateString))(properties.permissions)),errors.wrap('supplied properties not correct for "DeviceProperty"')}function convertCfnDaemonTaskDefinitionDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionDevicePropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),HostPath:cdk().stringToCloudFormation(properties.hostPath),Permissions:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissions)}):properties}function CfnDaemonTaskDefinitionDevicePropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("hostPath","HostPath",properties.HostPath!=null?cfn_parse().FromCloudFormation.getString(properties.HostPath):void 0),ret.addPropertyResult("permissions","Permissions",properties.Permissions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Permissions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionLinuxParametersPropertyValidator(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("capabilities",CfnDaemonTaskDefinitionKernelCapabilitiesPropertyValidator)(properties.capabilities)),errors.collect(cdk().propertyValidator("devices",cdk().listValidator(CfnDaemonTaskDefinitionDevicePropertyValidator))(properties.devices)),errors.collect(cdk().propertyValidator("initProcessEnabled",cdk().validateBoolean)(properties.initProcessEnabled)),errors.collect(cdk().propertyValidator("tmpfs",cdk().listValidator(CfnDaemonTaskDefinitionTmpfsPropertyValidator))(properties.tmpfs)),errors.wrap('supplied properties not correct for "LinuxParametersProperty"')}function convertCfnDaemonTaskDefinitionLinuxParametersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionLinuxParametersPropertyValidator(properties).assertSuccess(),{Capabilities:convertCfnDaemonTaskDefinitionKernelCapabilitiesPropertyToCloudFormation(properties.capabilities),Devices:cdk().listMapper(convertCfnDaemonTaskDefinitionDevicePropertyToCloudFormation)(properties.devices),InitProcessEnabled:cdk().booleanToCloudFormation(properties.initProcessEnabled),Tmpfs:cdk().listMapper(convertCfnDaemonTaskDefinitionTmpfsPropertyToCloudFormation)(properties.tmpfs)}):properties}function CfnDaemonTaskDefinitionLinuxParametersPropertyFromCloudFormation(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("capabilities","Capabilities",properties.Capabilities!=null?CfnDaemonTaskDefinitionKernelCapabilitiesPropertyFromCloudFormation(properties.Capabilities):void 0),ret.addPropertyResult("devices","Devices",properties.Devices!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionDevicePropertyFromCloudFormation)(properties.Devices):void 0),ret.addPropertyResult("initProcessEnabled","InitProcessEnabled",properties.InitProcessEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.InitProcessEnabled):void 0),ret.addPropertyResult("tmpfs","Tmpfs",properties.Tmpfs!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionTmpfsPropertyFromCloudFormation)(properties.Tmpfs):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionRestartPolicyPropertyValidator(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("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("ignoredExitCodes",cdk().listValidator(cdk().validateNumber))(properties.ignoredExitCodes)),errors.collect(cdk().propertyValidator("restartAttemptPeriod",cdk().validateNumber)(properties.restartAttemptPeriod)),errors.wrap('supplied properties not correct for "RestartPolicyProperty"')}function convertCfnDaemonTaskDefinitionRestartPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionRestartPolicyPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),IgnoredExitCodes:cdk().listMapper(cdk().numberToCloudFormation)(properties.ignoredExitCodes),RestartAttemptPeriod:cdk().numberToCloudFormation(properties.restartAttemptPeriod)}):properties}function CfnDaemonTaskDefinitionRestartPolicyPropertyFromCloudFormation(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("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("ignoredExitCodes","IgnoredExitCodes",properties.IgnoredExitCodes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.IgnoredExitCodes):void 0),ret.addPropertyResult("restartAttemptPeriod","RestartAttemptPeriod",properties.RestartAttemptPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.RestartAttemptPeriod):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionMountPointPropertyValidator(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("containerPath",cdk().validateString)(properties.containerPath)),errors.collect(cdk().propertyValidator("readOnly",cdk().validateBoolean)(properties.readOnly)),errors.collect(cdk().propertyValidator("sourceVolume",cdk().validateString)(properties.sourceVolume)),errors.wrap('supplied properties not correct for "MountPointProperty"')}function convertCfnDaemonTaskDefinitionMountPointPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionMountPointPropertyValidator(properties).assertSuccess(),{ContainerPath:cdk().stringToCloudFormation(properties.containerPath),ReadOnly:cdk().booleanToCloudFormation(properties.readOnly),SourceVolume:cdk().stringToCloudFormation(properties.sourceVolume)}):properties}function CfnDaemonTaskDefinitionMountPointPropertyFromCloudFormation(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("containerPath","ContainerPath",properties.ContainerPath!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerPath):void 0),ret.addPropertyResult("readOnly","ReadOnly",properties.ReadOnly!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReadOnly):void 0),ret.addPropertyResult("sourceVolume","SourceVolume",properties.SourceVolume!=null?cfn_parse().FromCloudFormation.getString(properties.SourceVolume):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionContainerDependencyPropertyValidator(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("condition",cdk().validateString)(properties.condition)),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.wrap('supplied properties not correct for "ContainerDependencyProperty"')}function convertCfnDaemonTaskDefinitionContainerDependencyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionContainerDependencyPropertyValidator(properties).assertSuccess(),{Condition:cdk().stringToCloudFormation(properties.condition),ContainerName:cdk().stringToCloudFormation(properties.containerName)}):properties}function CfnDaemonTaskDefinitionContainerDependencyPropertyFromCloudFormation(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("condition","Condition",properties.Condition!=null?cfn_parse().FromCloudFormation.getString(properties.Condition):void 0),ret.addPropertyResult("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionKeyValuePairPropertyValidator(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("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KeyValuePairProperty"')}function convertCfnDaemonTaskDefinitionKeyValuePairPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionKeyValuePairPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnDaemonTaskDefinitionKeyValuePairPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyValidator(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("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("cpu",cdk().validateNumber)(properties.cpu)),errors.collect(cdk().propertyValidator("dependsOn",cdk().listValidator(CfnDaemonTaskDefinitionContainerDependencyPropertyValidator))(properties.dependsOn)),errors.collect(cdk().propertyValidator("entryPoint",cdk().listValidator(cdk().validateString))(properties.entryPoint)),errors.collect(cdk().propertyValidator("environment",cdk().listValidator(CfnDaemonTaskDefinitionKeyValuePairPropertyValidator))(properties.environment)),errors.collect(cdk().propertyValidator("environmentFiles",cdk().listValidator(CfnDaemonTaskDefinitionEnvironmentFilePropertyValidator))(properties.environmentFiles)),errors.collect(cdk().propertyValidator("essential",cdk().validateBoolean)(properties.essential)),errors.collect(cdk().propertyValidator("firelensConfiguration",CfnDaemonTaskDefinitionFirelensConfigurationPropertyValidator)(properties.firelensConfiguration)),errors.collect(cdk().propertyValidator("healthCheck",CfnDaemonTaskDefinitionHealthCheckPropertyValidator)(properties.healthCheck)),errors.collect(cdk().propertyValidator("image",cdk().requiredValidator)(properties.image)),errors.collect(cdk().propertyValidator("image",cdk().validateString)(properties.image)),errors.collect(cdk().propertyValidator("interactive",cdk().validateBoolean)(properties.interactive)),errors.collect(cdk().propertyValidator("linuxParameters",CfnDaemonTaskDefinitionLinuxParametersPropertyValidator)(properties.linuxParameters)),errors.collect(cdk().propertyValidator("logConfiguration",CfnDaemonTaskDefinitionLogConfigurationPropertyValidator)(properties.logConfiguration)),errors.collect(cdk().propertyValidator("memory",cdk().validateNumber)(properties.memory)),errors.collect(cdk().propertyValidator("memoryReservation",cdk().validateNumber)(properties.memoryReservation)),errors.collect(cdk().propertyValidator("mountPoints",cdk().listValidator(CfnDaemonTaskDefinitionMountPointPropertyValidator))(properties.mountPoints)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("privileged",cdk().validateBoolean)(properties.privileged)),errors.collect(cdk().propertyValidator("pseudoTerminal",cdk().validateBoolean)(properties.pseudoTerminal)),errors.collect(cdk().propertyValidator("readonlyRootFilesystem",cdk().validateBoolean)(properties.readonlyRootFilesystem)),errors.collect(cdk().propertyValidator("repositoryCredentials",CfnDaemonTaskDefinitionRepositoryCredentialsPropertyValidator)(properties.repositoryCredentials)),errors.collect(cdk().propertyValidator("restartPolicy",CfnDaemonTaskDefinitionRestartPolicyPropertyValidator)(properties.restartPolicy)),errors.collect(cdk().propertyValidator("secrets",cdk().listValidator(CfnDaemonTaskDefinitionSecretPropertyValidator))(properties.secrets)),errors.collect(cdk().propertyValidator("startTimeout",cdk().validateNumber)(properties.startTimeout)),errors.collect(cdk().propertyValidator("stopTimeout",cdk().validateNumber)(properties.stopTimeout)),errors.collect(cdk().propertyValidator("systemControls",cdk().listValidator(CfnDaemonTaskDefinitionSystemControlPropertyValidator))(properties.systemControls)),errors.collect(cdk().propertyValidator("ulimits",cdk().listValidator(CfnDaemonTaskDefinitionUlimitPropertyValidator))(properties.ulimits)),errors.collect(cdk().propertyValidator("user",cdk().validateString)(properties.user)),errors.collect(cdk().propertyValidator("workingDirectory",cdk().validateString)(properties.workingDirectory)),errors.wrap('supplied properties not correct for "DaemonContainerDefinitionProperty"')}function convertCfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyValidator(properties).assertSuccess(),{Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),Cpu:cdk().numberToCloudFormation(properties.cpu),DependsOn:cdk().listMapper(convertCfnDaemonTaskDefinitionContainerDependencyPropertyToCloudFormation)(properties.dependsOn),EntryPoint:cdk().listMapper(cdk().stringToCloudFormation)(properties.entryPoint),Environment:cdk().listMapper(convertCfnDaemonTaskDefinitionKeyValuePairPropertyToCloudFormation)(properties.environment),EnvironmentFiles:cdk().listMapper(convertCfnDaemonTaskDefinitionEnvironmentFilePropertyToCloudFormation)(properties.environmentFiles),Essential:cdk().booleanToCloudFormation(properties.essential),FirelensConfiguration:convertCfnDaemonTaskDefinitionFirelensConfigurationPropertyToCloudFormation(properties.firelensConfiguration),HealthCheck:convertCfnDaemonTaskDefinitionHealthCheckPropertyToCloudFormation(properties.healthCheck),Image:cdk().stringToCloudFormation(properties.image),Interactive:cdk().booleanToCloudFormation(properties.interactive),LinuxParameters:convertCfnDaemonTaskDefinitionLinuxParametersPropertyToCloudFormation(properties.linuxParameters),LogConfiguration:convertCfnDaemonTaskDefinitionLogConfigurationPropertyToCloudFormation(properties.logConfiguration),Memory:cdk().numberToCloudFormation(properties.memory),MemoryReservation:cdk().numberToCloudFormation(properties.memoryReservation),MountPoints:cdk().listMapper(convertCfnDaemonTaskDefinitionMountPointPropertyToCloudFormation)(properties.mountPoints),Name:cdk().stringToCloudFormation(properties.name),Privileged:cdk().booleanToCloudFormation(properties.privileged),PseudoTerminal:cdk().booleanToCloudFormation(properties.pseudoTerminal),ReadonlyRootFilesystem:cdk().booleanToCloudFormation(properties.readonlyRootFilesystem),RepositoryCredentials:convertCfnDaemonTaskDefinitionRepositoryCredentialsPropertyToCloudFormation(properties.repositoryCredentials),RestartPolicy:convertCfnDaemonTaskDefinitionRestartPolicyPropertyToCloudFormation(properties.restartPolicy),Secrets:cdk().listMapper(convertCfnDaemonTaskDefinitionSecretPropertyToCloudFormation)(properties.secrets),StartTimeout:cdk().numberToCloudFormation(properties.startTimeout),StopTimeout:cdk().numberToCloudFormation(properties.stopTimeout),SystemControls:cdk().listMapper(convertCfnDaemonTaskDefinitionSystemControlPropertyToCloudFormation)(properties.systemControls),Ulimits:cdk().listMapper(convertCfnDaemonTaskDefinitionUlimitPropertyToCloudFormation)(properties.ulimits),User:cdk().stringToCloudFormation(properties.user),WorkingDirectory:cdk().stringToCloudFormation(properties.workingDirectory)}):properties}function CfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyFromCloudFormation(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("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getNumber(properties.Cpu):void 0),ret.addPropertyResult("dependsOn","DependsOn",properties.DependsOn!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionContainerDependencyPropertyFromCloudFormation)(properties.DependsOn):void 0),ret.addPropertyResult("entryPoint","EntryPoint",properties.EntryPoint!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EntryPoint):void 0),ret.addPropertyResult("environment","Environment",properties.Environment!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionKeyValuePairPropertyFromCloudFormation)(properties.Environment):void 0),ret.addPropertyResult("environmentFiles","EnvironmentFiles",properties.EnvironmentFiles!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionEnvironmentFilePropertyFromCloudFormation)(properties.EnvironmentFiles):void 0),ret.addPropertyResult("essential","Essential",properties.Essential!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Essential):void 0),ret.addPropertyResult("firelensConfiguration","FirelensConfiguration",properties.FirelensConfiguration!=null?CfnDaemonTaskDefinitionFirelensConfigurationPropertyFromCloudFormation(properties.FirelensConfiguration):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnDaemonTaskDefinitionHealthCheckPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("image","Image",properties.Image!=null?cfn_parse().FromCloudFormation.getString(properties.Image):void 0),ret.addPropertyResult("interactive","Interactive",properties.Interactive!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Interactive):void 0),ret.addPropertyResult("linuxParameters","LinuxParameters",properties.LinuxParameters!=null?CfnDaemonTaskDefinitionLinuxParametersPropertyFromCloudFormation(properties.LinuxParameters):void 0),ret.addPropertyResult("logConfiguration","LogConfiguration",properties.LogConfiguration!=null?CfnDaemonTaskDefinitionLogConfigurationPropertyFromCloudFormation(properties.LogConfiguration):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getNumber(properties.Memory):void 0),ret.addPropertyResult("memoryReservation","MemoryReservation",properties.MemoryReservation!=null?cfn_parse().FromCloudFormation.getNumber(properties.MemoryReservation):void 0),ret.addPropertyResult("mountPoints","MountPoints",properties.MountPoints!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionMountPointPropertyFromCloudFormation)(properties.MountPoints):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("privileged","Privileged",properties.Privileged!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Privileged):void 0),ret.addPropertyResult("pseudoTerminal","PseudoTerminal",properties.PseudoTerminal!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PseudoTerminal):void 0),ret.addPropertyResult("readonlyRootFilesystem","ReadonlyRootFilesystem",properties.ReadonlyRootFilesystem!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReadonlyRootFilesystem):void 0),ret.addPropertyResult("repositoryCredentials","RepositoryCredentials",properties.RepositoryCredentials!=null?CfnDaemonTaskDefinitionRepositoryCredentialsPropertyFromCloudFormation(properties.RepositoryCredentials):void 0),ret.addPropertyResult("restartPolicy","RestartPolicy",properties.RestartPolicy!=null?CfnDaemonTaskDefinitionRestartPolicyPropertyFromCloudFormation(properties.RestartPolicy):void 0),ret.addPropertyResult("secrets","Secrets",properties.Secrets!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionSecretPropertyFromCloudFormation)(properties.Secrets):void 0),ret.addPropertyResult("startTimeout","StartTimeout",properties.StartTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.StartTimeout):void 0),ret.addPropertyResult("stopTimeout","StopTimeout",properties.StopTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.StopTimeout):void 0),ret.addPropertyResult("systemControls","SystemControls",properties.SystemControls!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionSystemControlPropertyFromCloudFormation)(properties.SystemControls):void 0),ret.addPropertyResult("ulimits","Ulimits",properties.Ulimits!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionUlimitPropertyFromCloudFormation)(properties.Ulimits):void 0),ret.addPropertyResult("user","User",properties.User!=null?cfn_parse().FromCloudFormation.getString(properties.User):void 0),ret.addPropertyResult("workingDirectory","WorkingDirectory",properties.WorkingDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.WorkingDirectory):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDaemonTaskDefinitionPropsValidator(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("containerDefinitions",cdk().listValidator(CfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyValidator))(properties.containerDefinitions)),errors.collect(cdk().propertyValidator("cpu",cdk().validateString)(properties.cpu)),errors.collect(cdk().propertyValidator("executionRoleArn",cdk().validateString)(properties.executionRoleArn)),errors.collect(cdk().propertyValidator("family",cdk().validateString)(properties.family)),errors.collect(cdk().propertyValidator("memory",cdk().validateString)(properties.memory)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("taskRoleArn",cdk().validateString)(properties.taskRoleArn)),errors.collect(cdk().propertyValidator("volumes",cdk().listValidator(CfnDaemonTaskDefinitionVolumePropertyValidator))(properties.volumes)),errors.wrap('supplied properties not correct for "CfnDaemonTaskDefinitionProps"')}function convertCfnDaemonTaskDefinitionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDaemonTaskDefinitionPropsValidator(properties).assertSuccess(),{ContainerDefinitions:cdk().listMapper(convertCfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyToCloudFormation)(properties.containerDefinitions),Cpu:cdk().stringToCloudFormation(properties.cpu),ExecutionRoleArn:cdk().stringToCloudFormation(properties.executionRoleArn),Family:cdk().stringToCloudFormation(properties.family),Memory:cdk().stringToCloudFormation(properties.memory),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TaskRoleArn:cdk().stringToCloudFormation(properties.taskRoleArn),Volumes:cdk().listMapper(convertCfnDaemonTaskDefinitionVolumePropertyToCloudFormation)(properties.volumes)}):properties}function CfnDaemonTaskDefinitionPropsFromCloudFormation(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("containerDefinitions","ContainerDefinitions",properties.ContainerDefinitions!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionDaemonContainerDefinitionPropertyFromCloudFormation)(properties.ContainerDefinitions):void 0),ret.addPropertyResult("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getString(properties.Cpu):void 0),ret.addPropertyResult("executionRoleArn","ExecutionRoleArn",properties.ExecutionRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRoleArn):void 0),ret.addPropertyResult("family","Family",properties.Family!=null?cfn_parse().FromCloudFormation.getString(properties.Family):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getString(properties.Memory):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("taskRoleArn","TaskRoleArn",properties.TaskRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.TaskRoleArn):void 0),ret.addPropertyResult("volumes","Volumes",properties.Volumes!=null?cfn_parse().FromCloudFormation.getArray(CfnDaemonTaskDefinitionVolumePropertyFromCloudFormation)(properties.Volumes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnExpressGatewayService extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ecs.CfnExpressGatewayService",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ECS::ExpressGatewayService";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnExpressGatewayServicePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnExpressGatewayService(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 isCfnExpressGatewayService(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnExpressGatewayService.CFN_RESOURCE_TYPE_NAME}cdkTagManager;_cluster;_cpu;_executionRoleArn;_healthCheckPath;_infrastructureRoleArn;_memory;_networkConfiguration;_primaryContainer;_scalingTarget;_serviceName;_tags;_taskRoleArn;cfnPropertyNames={tags:"Tags",cluster:"Cluster",cpu:"Cpu",executionRoleArn:"ExecutionRoleArn",healthCheckPath:"HealthCheckPath",infrastructureRoleArn:"InfrastructureRoleArn",memory:"Memory",networkConfiguration:"NetworkConfiguration",primaryContainer:"PrimaryContainer",scalingTarget:"ScalingTarget",serviceName:"ServiceName",taskRoleArn:"TaskRoleArn"};constructor(scope,id,props){super(scope,id,{type:CfnExpressGatewayService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ecs_CfnExpressGatewayServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnExpressGatewayService),error}cdk().requireProperty(props,"executionRoleArn",this),cdk().requireProperty(props,"infrastructureRoleArn",this),cdk().requireProperty(props,"primaryContainer",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ECS::ExpressGatewayService",void 0,{tagPropertyName:"tags"}),this._cluster=props.cluster,this._cpu=props.cpu,this._executionRoleArn=props.executionRoleArn,this._healthCheckPath=props.healthCheckPath,this._infrastructureRoleArn=props.infrastructureRoleArn,this._memory=props.memory,this._networkConfiguration=props.networkConfiguration,this._primaryContainer=props.primaryContainer,this._scalingTarget=props.scalingTarget,this._serviceName=props.serviceName,this._tags=props.tags,this._taskRoleArn=props.taskRoleArn}get expressGatewayServiceRef(){return{serviceArn:this.ref}}get cluster(){return this._cluster}set cluster(value){cdk().traceProperty(this.node,"Cluster"),this._cluster=value}get cpu(){return this._cpu}set cpu(value){cdk().traceProperty(this.node,"Cpu"),this._cpu=value}get executionRoleArn(){return this._executionRoleArn}set executionRoleArn(value){cdk().traceProperty(this.node,"ExecutionRoleArn"),this._executionRoleArn=value}get healthCheckPath(){return this._healthCheckPath}set healthCheckPath(value){cdk().traceProperty(this.node,"HealthCheckPath"),this._healthCheckPath=value}get infrastructureRoleArn(){return this._infrastructureRoleArn}set infrastructureRoleArn(value){cdk().traceProperty(this.node,"InfrastructureRoleArn"),this._infrastructureRoleArn=value}get memory(){return this._memory}set memory(value){cdk().traceProperty(this.node,"Memory"),this._memory=value}get networkConfiguration(){return this._networkConfiguration}set networkConfiguration(value){cdk().traceProperty(this.node,"NetworkConfiguration"),this._networkConfiguration=value}get primaryContainer(){return this._primaryContainer}set primaryContainer(value){cdk().traceProperty(this.node,"PrimaryContainer"),this._primaryContainer=value}get scalingTarget(){return this._scalingTarget}set scalingTarget(value){cdk().traceProperty(this.node,"ScalingTarget"),this._scalingTarget=value}get serviceName(){return this._serviceName}set serviceName(value){cdk().traceProperty(this.node,"ServiceName"),this._serviceName=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get taskRoleArn(){return this._taskRoleArn}set taskRoleArn(value){cdk().traceProperty(this.node,"TaskRoleArn"),this._taskRoleArn=value}get attrActiveConfigurations(){return this.getAtt("ActiveConfigurations")}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArns(){return this.getAtt("ECSManagedResourceArns")}get attrEcsManagedResourceArnsAutoScaling(){return this.getAtt("ECSManagedResourceArns.AutoScaling")}get attrEcsManagedResourceArnsAutoScalingApplicationAutoScalingPolicies(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.AutoScaling.ApplicationAutoScalingPolicies",cdk().ResolutionTypeHint.STRING_LIST))}get attrEcsManagedResourceArnsAutoScalingScalableTarget(){return cdk().Token.asString(this.getAtt("ECSManagedResourceArns.AutoScaling.ScalableTarget",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArnsIngressPath(){return this.getAtt("ECSManagedResourceArns.IngressPath")}get attrEcsManagedResourceArnsIngressPathCertificateArn(){return cdk().Token.asString(this.getAtt("ECSManagedResourceArns.IngressPath.CertificateArn",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArnsIngressPathListenerArn(){return cdk().Token.asString(this.getAtt("ECSManagedResourceArns.IngressPath.ListenerArn",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArnsIngressPathListenerRuleArn(){return cdk().Token.asString(this.getAtt("ECSManagedResourceArns.IngressPath.ListenerRuleArn",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArnsIngressPathLoadBalancerArn(){return cdk().Token.asString(this.getAtt("ECSManagedResourceArns.IngressPath.LoadBalancerArn",cdk().ResolutionTypeHint.STRING))}get attrEcsManagedResourceArnsIngressPathLoadBalancerSecurityGroups(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.IngressPath.LoadBalancerSecurityGroups",cdk().ResolutionTypeHint.STRING_LIST))}get attrEcsManagedResourceArnsIngressPathTargetGroupArns(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.IngressPath.TargetGroupArns",cdk().ResolutionTypeHint.STRING_LIST))}get attrEcsManagedResourceArnsLogGroups(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.LogGroups",cdk().ResolutionTypeHint.STRING_LIST))}get attrEcsManagedResourceArnsMetricAlarms(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.MetricAlarms",cdk().ResolutionTypeHint.STRING_LIST))}get attrEcsManagedResourceArnsServiceSecurityGroups(){return cdk().Token.asList(this.getAtt("ECSManagedResourceArns.ServiceSecurityGroups",cdk().ResolutionTypeHint.STRING_LIST))}get attrEndpoint(){return cdk().Token.asString(this.getAtt("Endpoint",cdk().ResolutionTypeHint.STRING))}get attrServiceArn(){return cdk().Token.asString(this.getAtt("ServiceArn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return this.getAtt("Status")}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),cluster:this._cluster,cpu:this._cpu,executionRoleArn:this._executionRoleArn,healthCheckPath:this._healthCheckPath,infrastructureRoleArn:this._infrastructureRoleArn,memory:this._memory,networkConfiguration:this._networkConfiguration,primaryContainer:this._primaryContainer,scalingTarget:this._scalingTarget,serviceName:this._serviceName,taskRoleArn:this._taskRoleArn}}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",CfnExpressGatewayService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnExpressGatewayServicePropsToCloudFormation(props)}}exports.CfnExpressGatewayService=CfnExpressGatewayService;function CfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyValidator(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("credentialsParameter",cdk().requiredValidator)(properties.credentialsParameter)),errors.collect(cdk().propertyValidator("credentialsParameter",cdk().validateString)(properties.credentialsParameter)),errors.wrap('supplied properties not correct for "ExpressGatewayRepositoryCredentialsProperty"')}function convertCfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyValidator(properties).assertSuccess(),{CredentialsParameter:cdk().stringToCloudFormation(properties.credentialsParameter)}):properties}function CfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyFromCloudFormation(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("credentialsParameter","CredentialsParameter",properties.CredentialsParameter!=null?cfn_parse().FromCloudFormation.getString(properties.CredentialsParameter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceSecretPropertyValidator(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("valueFrom",cdk().requiredValidator)(properties.valueFrom)),errors.collect(cdk().propertyValidator("valueFrom",cdk().validateString)(properties.valueFrom)),errors.wrap('supplied properties not correct for "SecretProperty"')}function convertCfnExpressGatewayServiceSecretPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceSecretPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ValueFrom:cdk().stringToCloudFormation(properties.valueFrom)}):properties}function CfnExpressGatewayServiceSecretPropertyFromCloudFormation(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("valueFrom","ValueFrom",properties.ValueFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValueFrom):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyValidator(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("logGroup",cdk().requiredValidator)(properties.logGroup)),errors.collect(cdk().propertyValidator("logGroup",cdk().validateString)(properties.logGroup)),errors.collect(cdk().propertyValidator("logStreamPrefix",cdk().requiredValidator)(properties.logStreamPrefix)),errors.collect(cdk().propertyValidator("logStreamPrefix",cdk().validateString)(properties.logStreamPrefix)),errors.wrap('supplied properties not correct for "ExpressGatewayServiceAwsLogsConfigurationProperty"')}function convertCfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyValidator(properties).assertSuccess(),{LogGroup:cdk().stringToCloudFormation(properties.logGroup),LogStreamPrefix:cdk().stringToCloudFormation(properties.logStreamPrefix)}):properties}function CfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyFromCloudFormation(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("logGroup","LogGroup",properties.LogGroup!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroup):void 0),ret.addPropertyResult("logStreamPrefix","LogStreamPrefix",properties.LogStreamPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.LogStreamPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceKeyValuePairPropertyValidator(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("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KeyValuePairProperty"')}function convertCfnExpressGatewayServiceKeyValuePairPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceKeyValuePairPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnExpressGatewayServiceKeyValuePairPropertyFromCloudFormation(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("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayContainerPropertyValidator(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("awsLogsConfiguration",CfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyValidator)(properties.awsLogsConfiguration)),errors.collect(cdk().propertyValidator("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("environment",cdk().listValidator(CfnExpressGatewayServiceKeyValuePairPropertyValidator))(properties.environment)),errors.collect(cdk().propertyValidator("image",cdk().requiredValidator)(properties.image)),errors.collect(cdk().propertyValidator("image",cdk().validateString)(properties.image)),errors.collect(cdk().propertyValidator("repositoryCredentials",CfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyValidator)(properties.repositoryCredentials)),errors.collect(cdk().propertyValidator("secrets",cdk().listValidator(CfnExpressGatewayServiceSecretPropertyValidator))(properties.secrets)),errors.wrap('supplied properties not correct for "ExpressGatewayContainerProperty"')}function convertCfnExpressGatewayServiceExpressGatewayContainerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayContainerPropertyValidator(properties).assertSuccess(),{AwsLogsConfiguration:convertCfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyToCloudFormation(properties.awsLogsConfiguration),Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),Environment:cdk().listMapper(convertCfnExpressGatewayServiceKeyValuePairPropertyToCloudFormation)(properties.environment),Image:cdk().stringToCloudFormation(properties.image),RepositoryCredentials:convertCfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyToCloudFormation(properties.repositoryCredentials),Secrets:cdk().listMapper(convertCfnExpressGatewayServiceSecretPropertyToCloudFormation)(properties.secrets)}):properties}function CfnExpressGatewayServiceExpressGatewayContainerPropertyFromCloudFormation(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("awsLogsConfiguration","AwsLogsConfiguration",properties.AwsLogsConfiguration!=null?CfnExpressGatewayServiceExpressGatewayServiceAwsLogsConfigurationPropertyFromCloudFormation(properties.AwsLogsConfiguration):void 0),ret.addPropertyResult("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("environment","Environment",properties.Environment!=null?cfn_parse().FromCloudFormation.getArray(CfnExpressGatewayServiceKeyValuePairPropertyFromCloudFormation)(properties.Environment):void 0),ret.addPropertyResult("image","Image",properties.Image!=null?cfn_parse().FromCloudFormation.getString(properties.Image):void 0),ret.addPropertyResult("repositoryCredentials","RepositoryCredentials",properties.RepositoryCredentials!=null?CfnExpressGatewayServiceExpressGatewayRepositoryCredentialsPropertyFromCloudFormation(properties.RepositoryCredentials):void 0),ret.addPropertyResult("secrets","Secrets",properties.Secrets!=null?cfn_parse().FromCloudFormation.getArray(CfnExpressGatewayServiceSecretPropertyFromCloudFormation)(properties.Secrets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyValidator(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("autoScalingMetric",cdk().validateString)(properties.autoScalingMetric)),errors.collect(cdk().propertyValidator("autoScalingTargetValue",cdk().validateNumber)(properties.autoScalingTargetValue)),errors.collect(cdk().propertyValidator("maxTaskCount",cdk().validateNumber)(properties.maxTaskCount)),errors.collect(cdk().propertyValidator("minTaskCount",cdk().validateNumber)(properties.minTaskCount)),errors.wrap('supplied properties not correct for "ExpressGatewayScalingTargetProperty"')}function convertCfnExpressGatewayServiceExpressGatewayScalingTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyValidator(properties).assertSuccess(),{AutoScalingMetric:cdk().stringToCloudFormation(properties.autoScalingMetric),AutoScalingTargetValue:cdk().numberToCloudFormation(properties.autoScalingTargetValue),MaxTaskCount:cdk().numberToCloudFormation(properties.maxTaskCount),MinTaskCount:cdk().numberToCloudFormation(properties.minTaskCount)}):properties}function CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyFromCloudFormation(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("autoScalingMetric","AutoScalingMetric",properties.AutoScalingMetric!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingMetric):void 0),ret.addPropertyResult("autoScalingTargetValue","AutoScalingTargetValue",properties.AutoScalingTargetValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.AutoScalingTargetValue):void 0),ret.addPropertyResult("maxTaskCount","MaxTaskCount",properties.MaxTaskCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxTaskCount):void 0),ret.addPropertyResult("minTaskCount","MinTaskCount",properties.MinTaskCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTaskCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyValidator(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("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("subnets",cdk().listValidator(cdk().validateString))(properties.subnets)),errors.wrap('supplied properties not correct for "ExpressGatewayServiceNetworkConfigurationProperty"')}function convertCfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyValidator(properties).assertSuccess(),{SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),Subnets:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnets)}):properties}function CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyFromCloudFormation(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("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("subnets","Subnets",properties.Subnets!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Subnets):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceIngressPathSummaryPropertyValidator(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("accessType",cdk().validateString)(properties.accessType)),errors.collect(cdk().propertyValidator("endpoint",cdk().validateString)(properties.endpoint)),errors.wrap('supplied properties not correct for "IngressPathSummaryProperty"')}function convertCfnExpressGatewayServiceIngressPathSummaryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceIngressPathSummaryPropertyValidator(properties).assertSuccess(),{AccessType:cdk().stringToCloudFormation(properties.accessType),Endpoint:cdk().stringToCloudFormation(properties.endpoint)}):properties}function CfnExpressGatewayServiceIngressPathSummaryPropertyFromCloudFormation(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("accessType","AccessType",properties.AccessType!=null?cfn_parse().FromCloudFormation.getString(properties.AccessType):void 0),ret.addPropertyResult("endpoint","Endpoint",properties.Endpoint!=null?cfn_parse().FromCloudFormation.getString(properties.Endpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayServiceConfigurationPropertyValidator(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("cpu",cdk().validateString)(properties.cpu)),errors.collect(cdk().propertyValidator("createdAt",cdk().validateString)(properties.createdAt)),errors.collect(cdk().propertyValidator("executionRoleArn",cdk().validateString)(properties.executionRoleArn)),errors.collect(cdk().propertyValidator("healthCheckPath",cdk().validateString)(properties.healthCheckPath)),errors.collect(cdk().propertyValidator("ingressPaths",cdk().listValidator(CfnExpressGatewayServiceIngressPathSummaryPropertyValidator))(properties.ingressPaths)),errors.collect(cdk().propertyValidator("memory",cdk().validateString)(properties.memory)),errors.collect(cdk().propertyValidator("networkConfiguration",CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("primaryContainer",CfnExpressGatewayServiceExpressGatewayContainerPropertyValidator)(properties.primaryContainer)),errors.collect(cdk().propertyValidator("scalingTarget",CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyValidator)(properties.scalingTarget)),errors.collect(cdk().propertyValidator("serviceRevisionArn",cdk().validateString)(properties.serviceRevisionArn)),errors.collect(cdk().propertyValidator("taskRoleArn",cdk().validateString)(properties.taskRoleArn)),errors.wrap('supplied properties not correct for "ExpressGatewayServiceConfigurationProperty"')}function convertCfnExpressGatewayServiceExpressGatewayServiceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayServiceConfigurationPropertyValidator(properties).assertSuccess(),{Cpu:cdk().stringToCloudFormation(properties.cpu),CreatedAt:cdk().stringToCloudFormation(properties.createdAt),ExecutionRoleArn:cdk().stringToCloudFormation(properties.executionRoleArn),HealthCheckPath:cdk().stringToCloudFormation(properties.healthCheckPath),IngressPaths:cdk().listMapper(convertCfnExpressGatewayServiceIngressPathSummaryPropertyToCloudFormation)(properties.ingressPaths),Memory:cdk().stringToCloudFormation(properties.memory),NetworkConfiguration:convertCfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyToCloudFormation(properties.networkConfiguration),PrimaryContainer:convertCfnExpressGatewayServiceExpressGatewayContainerPropertyToCloudFormation(properties.primaryContainer),ScalingTarget:convertCfnExpressGatewayServiceExpressGatewayScalingTargetPropertyToCloudFormation(properties.scalingTarget),ServiceRevisionArn:cdk().stringToCloudFormation(properties.serviceRevisionArn),TaskRoleArn:cdk().stringToCloudFormation(properties.taskRoleArn)}):properties}function CfnExpressGatewayServiceExpressGatewayServiceConfigurationPropertyFromCloudFormation(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("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getString(properties.Cpu):void 0),ret.addPropertyResult("createdAt","CreatedAt",properties.CreatedAt!=null?cfn_parse().FromCloudFormation.getString(properties.CreatedAt):void 0),ret.addPropertyResult("executionRoleArn","ExecutionRoleArn",properties.ExecutionRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRoleArn):void 0),ret.addPropertyResult("healthCheckPath","HealthCheckPath",properties.HealthCheckPath!=null?cfn_parse().FromCloudFormation.getString(properties.HealthCheckPath):void 0),ret.addPropertyResult("ingressPaths","IngressPaths",properties.IngressPaths!=null?cfn_parse().FromCloudFormation.getArray(CfnExpressGatewayServiceIngressPathSummaryPropertyFromCloudFormation)(properties.IngressPaths):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getString(properties.Memory):void 0),ret.addPropertyResult("networkConfiguration","NetworkConfiguration",properties.NetworkConfiguration!=null?CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyFromCloudFormation(properties.NetworkConfiguration):void 0),ret.addPropertyResult("primaryContainer","PrimaryContainer",properties.PrimaryContainer!=null?CfnExpressGatewayServiceExpressGatewayContainerPropertyFromCloudFormation(properties.PrimaryContainer):void 0),ret.addPropertyResult("scalingTarget","ScalingTarget",properties.ScalingTarget!=null?CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyFromCloudFormation(properties.ScalingTarget):void 0),ret.addPropertyResult("serviceRevisionArn","ServiceRevisionArn",properties.ServiceRevisionArn!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceRevisionArn):void 0),ret.addPropertyResult("taskRoleArn","TaskRoleArn",properties.TaskRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.TaskRoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceExpressGatewayServiceStatusPropertyValidator(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("statusCode",cdk().validateString)(properties.statusCode)),errors.wrap('supplied properties not correct for "ExpressGatewayServiceStatusProperty"')}function convertCfnExpressGatewayServiceExpressGatewayServiceStatusPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceExpressGatewayServiceStatusPropertyValidator(properties).assertSuccess(),{StatusCode:cdk().stringToCloudFormation(properties.statusCode)}):properties}function CfnExpressGatewayServiceExpressGatewayServiceStatusPropertyFromCloudFormation(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("statusCode","StatusCode",properties.StatusCode!=null?cfn_parse().FromCloudFormation.getString(properties.StatusCode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceIngressPathArnsPropertyValidator(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("certificateArn",cdk().validateString)(properties.certificateArn)),errors.collect(cdk().propertyValidator("listenerArn",cdk().validateString)(properties.listenerArn)),errors.collect(cdk().propertyValidator("listenerRuleArn",cdk().validateString)(properties.listenerRuleArn)),errors.collect(cdk().propertyValidator("loadBalancerArn",cdk().validateString)(properties.loadBalancerArn)),errors.collect(cdk().propertyValidator("loadBalancerSecurityGroups",cdk().listValidator(cdk().validateString))(properties.loadBalancerSecurityGroups)),errors.collect(cdk().propertyValidator("targetGroupArns",cdk().listValidator(cdk().validateString))(properties.targetGroupArns)),errors.wrap('supplied properties not correct for "IngressPathArnsProperty"')}function convertCfnExpressGatewayServiceIngressPathArnsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceIngressPathArnsPropertyValidator(properties).assertSuccess(),{CertificateArn:cdk().stringToCloudFormation(properties.certificateArn),ListenerArn:cdk().stringToCloudFormation(properties.listenerArn),ListenerRuleArn:cdk().stringToCloudFormation(properties.listenerRuleArn),LoadBalancerArn:cdk().stringToCloudFormation(properties.loadBalancerArn),LoadBalancerSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.loadBalancerSecurityGroups),TargetGroupArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetGroupArns)}):properties}function CfnExpressGatewayServiceIngressPathArnsPropertyFromCloudFormation(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("certificateArn","CertificateArn",properties.CertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateArn):void 0),ret.addPropertyResult("listenerArn","ListenerArn",properties.ListenerArn!=null?cfn_parse().FromCloudFormation.getString(properties.ListenerArn):void 0),ret.addPropertyResult("listenerRuleArn","ListenerRuleArn",properties.ListenerRuleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ListenerRuleArn):void 0),ret.addPropertyResult("loadBalancerArn","LoadBalancerArn",properties.LoadBalancerArn!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerArn):void 0),ret.addPropertyResult("loadBalancerSecurityGroups","LoadBalancerSecurityGroups",properties.LoadBalancerSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LoadBalancerSecurityGroups):void 0),ret.addPropertyResult("targetGroupArns","TargetGroupArns",properties.TargetGroupArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetGroupArns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceAutoScalingArnsPropertyValidator(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("applicationAutoScalingPolicies",cdk().listValidator(cdk().validateString))(properties.applicationAutoScalingPolicies)),errors.collect(cdk().propertyValidator("scalableTarget",cdk().validateString)(properties.scalableTarget)),errors.wrap('supplied properties not correct for "AutoScalingArnsProperty"')}function convertCfnExpressGatewayServiceAutoScalingArnsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceAutoScalingArnsPropertyValidator(properties).assertSuccess(),{ApplicationAutoScalingPolicies:cdk().listMapper(cdk().stringToCloudFormation)(properties.applicationAutoScalingPolicies),ScalableTarget:cdk().stringToCloudFormation(properties.scalableTarget)}):properties}function CfnExpressGatewayServiceAutoScalingArnsPropertyFromCloudFormation(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("applicationAutoScalingPolicies","ApplicationAutoScalingPolicies",properties.ApplicationAutoScalingPolicies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ApplicationAutoScalingPolicies):void 0),ret.addPropertyResult("scalableTarget","ScalableTarget",properties.ScalableTarget!=null?cfn_parse().FromCloudFormation.getString(properties.ScalableTarget):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServiceECSManagedResourceArnsPropertyValidator(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("autoScaling",CfnExpressGatewayServiceAutoScalingArnsPropertyValidator)(properties.autoScaling)),errors.collect(cdk().propertyValidator("ingressPath",CfnExpressGatewayServiceIngressPathArnsPropertyValidator)(properties.ingressPath)),errors.collect(cdk().propertyValidator("logGroups",cdk().listValidator(cdk().validateString))(properties.logGroups)),errors.collect(cdk().propertyValidator("metricAlarms",cdk().listValidator(cdk().validateString))(properties.metricAlarms)),errors.collect(cdk().propertyValidator("serviceSecurityGroups",cdk().listValidator(cdk().validateString))(properties.serviceSecurityGroups)),errors.wrap('supplied properties not correct for "ECSManagedResourceArnsProperty"')}function convertCfnExpressGatewayServiceECSManagedResourceArnsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServiceECSManagedResourceArnsPropertyValidator(properties).assertSuccess(),{AutoScaling:convertCfnExpressGatewayServiceAutoScalingArnsPropertyToCloudFormation(properties.autoScaling),IngressPath:convertCfnExpressGatewayServiceIngressPathArnsPropertyToCloudFormation(properties.ingressPath),LogGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.logGroups),MetricAlarms:cdk().listMapper(cdk().stringToCloudFormation)(properties.metricAlarms),ServiceSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.serviceSecurityGroups)}):properties}function CfnExpressGatewayServiceECSManagedResourceArnsPropertyFromCloudFormation(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("autoScaling","AutoScaling",properties.AutoScaling!=null?CfnExpressGatewayServiceAutoScalingArnsPropertyFromCloudFormation(properties.AutoScaling):void 0),ret.addPropertyResult("ingressPath","IngressPath",properties.IngressPath!=null?CfnExpressGatewayServiceIngressPathArnsPropertyFromCloudFormation(properties.IngressPath):void 0),ret.addPropertyResult("logGroups","LogGroups",properties.LogGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LogGroups):void 0),ret.addPropertyResult("metricAlarms","MetricAlarms",properties.MetricAlarms!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MetricAlarms):void 0),ret.addPropertyResult("serviceSecurityGroups","ServiceSecurityGroups",properties.ServiceSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ServiceSecurityGroups):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnExpressGatewayServicePropsValidator(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("cluster",cdk().validateString)(properties.cluster)),errors.collect(cdk().propertyValidator("cpu",cdk().validateString)(properties.cpu)),errors.collect(cdk().propertyValidator("executionRoleArn",cdk().requiredValidator)(properties.executionRoleArn)),errors.collect(cdk().propertyValidator("executionRoleArn",cdk().validateString)(properties.executionRoleArn)),errors.collect(cdk().propertyValidator("healthCheckPath",cdk().validateString)(properties.healthCheckPath)),errors.collect(cdk().propertyValidator("infrastructureRoleArn",cdk().requiredValidator)(properties.infrastructureRoleArn)),errors.collect(cdk().propertyValidator("infrastructureRoleArn",cdk().validateString)(properties.infrastructureRoleArn)),errors.collect(cdk().propertyValidator("memory",cdk().validateString)(properties.memory)),errors.collect(cdk().propertyValidator("networkConfiguration",CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyValidator)(properties.networkConfiguration)),errors.collect(cdk().propertyValidator("primaryContainer",cdk().requiredValidator)(properties.primaryContainer)),errors.collect(cdk().propertyValidator("primaryContainer",CfnExpressGatewayServiceExpressGatewayContainerPropertyValidator)(properties.primaryContainer)),errors.collect(cdk().propertyValidator("scalingTarget",CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyValidator)(properties.scalingTarget)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("taskRoleArn",cdk().validateString)(properties.taskRoleArn)),errors.wrap('supplied properties not correct for "CfnExpressGatewayServiceProps"')}function convertCfnExpressGatewayServicePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnExpressGatewayServicePropsValidator(properties).assertSuccess(),{Cluster:cdk().stringToCloudFormation(properties.cluster),Cpu:cdk().stringToCloudFormation(properties.cpu),ExecutionRoleArn:cdk().stringToCloudFormation(properties.executionRoleArn),HealthCheckPath:cdk().stringToCloudFormation(properties.healthCheckPath),InfrastructureRoleArn:cdk().stringToCloudFormation(properties.infrastructureRoleArn),Memory:cdk().stringToCloudFormation(properties.memory),NetworkConfiguration:convertCfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyToCloudFormation(properties.networkConfiguration),PrimaryContainer:convertCfnExpressGatewayServiceExpressGatewayContainerPropertyToCloudFormation(properties.primaryContainer),ScalingTarget:convertCfnExpressGatewayServiceExpressGatewayScalingTargetPropertyToCloudFormation(properties.scalingTarget),ServiceName:cdk().stringToCloudFormation(properties.serviceName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TaskRoleArn:cdk().stringToCloudFormation(properties.taskRoleArn)}):properties}function CfnExpressGatewayServicePropsFromCloudFormation(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("cluster","Cluster",properties.Cluster!=null?cfn_parse().FromCloudFormation.getString(properties.Cluster):void 0),ret.addPropertyResult("cpu","Cpu",properties.Cpu!=null?cfn_parse().FromCloudFormation.getString(properties.Cpu):void 0),ret.addPropertyResult("executionRoleArn","ExecutionRoleArn",properties.ExecutionRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRoleArn):void 0),ret.addPropertyResult("healthCheckPath","HealthCheckPath",properties.HealthCheckPath!=null?cfn_parse().FromCloudFormation.getString(properties.HealthCheckPath):void 0),ret.addPropertyResult("infrastructureRoleArn","InfrastructureRoleArn",properties.InfrastructureRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.InfrastructureRoleArn):void 0),ret.addPropertyResult("memory","Memory",properties.Memory!=null?cfn_parse().FromCloudFormation.getString(properties.Memory):void 0),ret.addPropertyResult("networkConfiguration","NetworkConfiguration",properties.NetworkConfiguration!=null?CfnExpressGatewayServiceExpressGatewayServiceNetworkConfigurationPropertyFromCloudFormation(properties.NetworkConfiguration):void 0),ret.addPropertyResult("primaryContainer","PrimaryContainer",properties.PrimaryContainer!=null?CfnExpressGatewayServiceExpressGatewayContainerPropertyFromCloudFormation(properties.PrimaryContainer):void 0),ret.addPropertyResult("scalingTarget","ScalingTarget",properties.ScalingTarget!=null?CfnExpressGatewayServiceExpressGatewayScalingTargetPropertyFromCloudFormation(properties.ScalingTarget):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("taskRoleArn","TaskRoleArn",properties.TaskRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.TaskRoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}