Files
agent-claw/cdk/node_modules/aws-cdk-lib/aws-autoscaling/lib/autoscaling.generated.js
2026-05-06 18:55:16 -05:00

2 lines
211 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnWarmPool=exports.CfnScheduledAction=exports.CfnScalingPolicy=exports.CfnLifecycleHook=exports.CfnLaunchConfiguration=exports.CfnAutoScalingGroup=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 CfnAutoScalingGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::AutoScalingGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAutoScalingGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAutoScalingGroup(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 isCfnAutoScalingGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAutoScalingGroup.CFN_RESOURCE_TYPE_NAME}static arnForAutoScalingGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_autoscaling_IAutoScalingGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAutoScalingGroup),error}return resource.autoScalingGroupRef.autoScalingGroupArn}_autoScalingGroupName;_availabilityZoneDistribution;_availabilityZoneIds;_availabilityZoneImpairmentPolicy;_availabilityZones;_capacityRebalance;_capacityReservationSpecification;_context;_cooldown;_defaultInstanceWarmup;_deletionProtection;_desiredCapacity;_desiredCapacityType;_healthCheckGracePeriod;_healthCheckType;_instanceId;_instanceLifecyclePolicy;_instanceMaintenancePolicy;_launchConfigurationName;_launchTemplate;_lifecycleHookSpecificationList;_loadBalancerNames;_maxInstanceLifetime;_maxSize;_metricsCollection;_minSize;_mixedInstancesPolicy;_newInstancesProtectedFromScaleIn;_notificationConfiguration;_notificationConfigurations;_placementGroup;_serviceLinkedRoleArn;_skipZonalShiftValidation;tags;_tagsRaw;_targetGroupArns;_terminationPolicies;_trafficSources;_vpcZoneIdentifier;cfnPropertyNames={autoScalingGroupName:"AutoScalingGroupName",availabilityZoneDistribution:"AvailabilityZoneDistribution",availabilityZoneIds:"AvailabilityZoneIds",availabilityZoneImpairmentPolicy:"AvailabilityZoneImpairmentPolicy",availabilityZones:"AvailabilityZones",capacityRebalance:"CapacityRebalance",capacityReservationSpecification:"CapacityReservationSpecification",context:"Context",cooldown:"Cooldown",defaultInstanceWarmup:"DefaultInstanceWarmup",deletionProtection:"DeletionProtection",desiredCapacity:"DesiredCapacity",desiredCapacityType:"DesiredCapacityType",healthCheckGracePeriod:"HealthCheckGracePeriod",healthCheckType:"HealthCheckType",instanceId:"InstanceId",instanceLifecyclePolicy:"InstanceLifecyclePolicy",instanceMaintenancePolicy:"InstanceMaintenancePolicy",launchConfigurationName:"LaunchConfigurationName",launchTemplate:"LaunchTemplate",lifecycleHookSpecificationList:"LifecycleHookSpecificationList",loadBalancerNames:"LoadBalancerNames",maxInstanceLifetime:"MaxInstanceLifetime",maxSize:"MaxSize",metricsCollection:"MetricsCollection",minSize:"MinSize",mixedInstancesPolicy:"MixedInstancesPolicy",newInstancesProtectedFromScaleIn:"NewInstancesProtectedFromScaleIn",notificationConfiguration:"NotificationConfiguration",notificationConfigurations:"NotificationConfigurations",placementGroup:"PlacementGroup",serviceLinkedRoleArn:"ServiceLinkedRoleARN",skipZonalShiftValidation:"SkipZonalShiftValidation",tags:"Tags",targetGroupArns:"TargetGroupARNs",terminationPolicies:"TerminationPolicies",trafficSources:"TrafficSources",vpcZoneIdentifier:"VPCZoneIdentifier"};constructor(scope,id,props){super(scope,id,{type:CfnAutoScalingGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnAutoScalingGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAutoScalingGroup),error}cdk().requireProperty(props,"maxSize",this),cdk().requireProperty(props,"minSize",this),this._autoScalingGroupName=props.autoScalingGroupName,this._availabilityZoneDistribution=props.availabilityZoneDistribution,this._availabilityZoneIds=props.availabilityZoneIds,this._availabilityZoneImpairmentPolicy=props.availabilityZoneImpairmentPolicy,this._availabilityZones=props.availabilityZones,this._capacityRebalance=props.capacityRebalance,this._capacityReservationSpecification=props.capacityReservationSpecification,this._context=props.context,this._cooldown=props.cooldown,this._defaultInstanceWarmup=props.defaultInstanceWarmup,this._deletionProtection=props.deletionProtection,this._desiredCapacity=props.desiredCapacity,this._desiredCapacityType=props.desiredCapacityType,this._healthCheckGracePeriod=props.healthCheckGracePeriod,this._healthCheckType=props.healthCheckType,this._instanceId=props.instanceId,this._instanceLifecyclePolicy=props.instanceLifecyclePolicy,this._instanceMaintenancePolicy=props.instanceMaintenancePolicy,this._launchConfigurationName=cdk().getRefProperty(props.launchConfigurationName?.launchConfigurationRef,"launchConfigurationName")??cdk().ensureStringOrUndefined(props.launchConfigurationName,"launchConfigurationName","autoscaling.ILaunchConfigurationRef | string"),this._launchTemplate=props.launchTemplate,this._lifecycleHookSpecificationList=props.lifecycleHookSpecificationList,this._loadBalancerNames=props.loadBalancerNames,this._maxInstanceLifetime=props.maxInstanceLifetime,this._maxSize=props.maxSize,this._metricsCollection=props.metricsCollection,this._minSize=props.minSize,this._mixedInstancesPolicy=props.mixedInstancesPolicy,this._newInstancesProtectedFromScaleIn=props.newInstancesProtectedFromScaleIn,this._notificationConfiguration=props.notificationConfiguration,this._notificationConfigurations=props.notificationConfigurations,this._placementGroup=props.placementGroup,this._serviceLinkedRoleArn=cdk().getRefProperty(props.serviceLinkedRoleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.serviceLinkedRoleArn,"serviceLinkedRoleArn","iam.IRoleRef | string"),this._skipZonalShiftValidation=props.skipZonalShiftValidation,this.tags=new(cdk()).TagManager(cdk().TagType.AUTOSCALING_GROUP,"AWS::AutoScaling::AutoScalingGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._targetGroupArns=cdk().mapArrayInPlace(props.targetGroupArns,item=>cdk().getRefProperty(item?.targetGroupRef,"targetGroupArn")??cdk().ensureStringOrUndefined(item,"targetGroupArns","elasticloadbalancingv2.ITargetGroupRef | string")),this._terminationPolicies=props.terminationPolicies,this._trafficSources=props.trafficSources,this._vpcZoneIdentifier=cdk().mapArrayInPlace(props.vpcZoneIdentifier,item=>cdk().getRefProperty(item?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(item,"vpcZoneIdentifier","ec2.ISubnetRef | string"))}get autoScalingGroupRef(){return{autoScalingGroupName:this.ref,autoScalingGroupArn:this.attrAutoScalingGroupArn}}get autoScalingGroupName(){return this._autoScalingGroupName}set autoScalingGroupName(value){cdk().traceProperty(this.node,"AutoScalingGroupName"),this._autoScalingGroupName=value}get availabilityZoneDistribution(){return this._availabilityZoneDistribution}set availabilityZoneDistribution(value){cdk().traceProperty(this.node,"AvailabilityZoneDistribution"),this._availabilityZoneDistribution=value}get availabilityZoneIds(){return this._availabilityZoneIds}set availabilityZoneIds(value){cdk().traceProperty(this.node,"AvailabilityZoneIds"),this._availabilityZoneIds=value}get availabilityZoneImpairmentPolicy(){return this._availabilityZoneImpairmentPolicy}set availabilityZoneImpairmentPolicy(value){cdk().traceProperty(this.node,"AvailabilityZoneImpairmentPolicy"),this._availabilityZoneImpairmentPolicy=value}get availabilityZones(){return this._availabilityZones}set availabilityZones(value){cdk().traceProperty(this.node,"AvailabilityZones"),this._availabilityZones=value}get capacityRebalance(){return this._capacityRebalance}set capacityRebalance(value){cdk().traceProperty(this.node,"CapacityRebalance"),this._capacityRebalance=value}get capacityReservationSpecification(){return this._capacityReservationSpecification}set capacityReservationSpecification(value){cdk().traceProperty(this.node,"CapacityReservationSpecification"),this._capacityReservationSpecification=value}get context(){return this._context}set context(value){cdk().traceProperty(this.node,"Context"),this._context=value}get cooldown(){return this._cooldown}set cooldown(value){cdk().traceProperty(this.node,"Cooldown"),this._cooldown=value}get defaultInstanceWarmup(){return this._defaultInstanceWarmup}set defaultInstanceWarmup(value){cdk().traceProperty(this.node,"DefaultInstanceWarmup"),this._defaultInstanceWarmup=value}get deletionProtection(){return this._deletionProtection}set deletionProtection(value){cdk().traceProperty(this.node,"DeletionProtection"),this._deletionProtection=value}get desiredCapacity(){return this._desiredCapacity}set desiredCapacity(value){cdk().traceProperty(this.node,"DesiredCapacity"),this._desiredCapacity=value}get desiredCapacityType(){return this._desiredCapacityType}set desiredCapacityType(value){cdk().traceProperty(this.node,"DesiredCapacityType"),this._desiredCapacityType=value}get healthCheckGracePeriod(){return this._healthCheckGracePeriod}set healthCheckGracePeriod(value){cdk().traceProperty(this.node,"HealthCheckGracePeriod"),this._healthCheckGracePeriod=value}get healthCheckType(){return this._healthCheckType}set healthCheckType(value){cdk().traceProperty(this.node,"HealthCheckType"),this._healthCheckType=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get instanceLifecyclePolicy(){return this._instanceLifecyclePolicy}set instanceLifecyclePolicy(value){cdk().traceProperty(this.node,"InstanceLifecyclePolicy"),this._instanceLifecyclePolicy=value}get instanceMaintenancePolicy(){return this._instanceMaintenancePolicy}set instanceMaintenancePolicy(value){cdk().traceProperty(this.node,"InstanceMaintenancePolicy"),this._instanceMaintenancePolicy=value}get launchConfigurationName(){return this._launchConfigurationName}set launchConfigurationName(value){cdk().traceProperty(this.node,"LaunchConfigurationName"),this._launchConfigurationName=value}get launchTemplate(){return this._launchTemplate}set launchTemplate(value){cdk().traceProperty(this.node,"LaunchTemplate"),this._launchTemplate=value}get lifecycleHookSpecificationList(){return this._lifecycleHookSpecificationList}set lifecycleHookSpecificationList(value){cdk().traceProperty(this.node,"LifecycleHookSpecificationList"),this._lifecycleHookSpecificationList=value}get loadBalancerNames(){return this._loadBalancerNames}set loadBalancerNames(value){cdk().traceProperty(this.node,"LoadBalancerNames"),this._loadBalancerNames=value}get maxInstanceLifetime(){return this._maxInstanceLifetime}set maxInstanceLifetime(value){cdk().traceProperty(this.node,"MaxInstanceLifetime"),this._maxInstanceLifetime=value}get maxSize(){return this._maxSize}set maxSize(value){cdk().traceProperty(this.node,"MaxSize"),this._maxSize=value}get metricsCollection(){return this._metricsCollection}set metricsCollection(value){cdk().traceProperty(this.node,"MetricsCollection"),this._metricsCollection=value}get minSize(){return this._minSize}set minSize(value){cdk().traceProperty(this.node,"MinSize"),this._minSize=value}get mixedInstancesPolicy(){return this._mixedInstancesPolicy}set mixedInstancesPolicy(value){cdk().traceProperty(this.node,"MixedInstancesPolicy"),this._mixedInstancesPolicy=value}get newInstancesProtectedFromScaleIn(){return this._newInstancesProtectedFromScaleIn}set newInstancesProtectedFromScaleIn(value){cdk().traceProperty(this.node,"NewInstancesProtectedFromScaleIn"),this._newInstancesProtectedFromScaleIn=value}get notificationConfiguration(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup#notificationConfiguration","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"notificationConfiguration").get),error}return this._notificationConfiguration}set notificationConfiguration(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup#notificationConfiguration","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"notificationConfiguration").set),error}cdk().traceProperty(this.node,"NotificationConfiguration"),this._notificationConfiguration=value}get notificationConfigurations(){return this._notificationConfigurations}set notificationConfigurations(value){cdk().traceProperty(this.node,"NotificationConfigurations"),this._notificationConfigurations=value}get placementGroup(){return this._placementGroup}set placementGroup(value){cdk().traceProperty(this.node,"PlacementGroup"),this._placementGroup=value}get serviceLinkedRoleArn(){return this._serviceLinkedRoleArn}set serviceLinkedRoleArn(value){cdk().traceProperty(this.node,"ServiceLinkedRoleARN"),this._serviceLinkedRoleArn=value}get skipZonalShiftValidation(){return this._skipZonalShiftValidation}set skipZonalShiftValidation(value){cdk().traceProperty(this.node,"SkipZonalShiftValidation"),this._skipZonalShiftValidation=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get targetGroupArns(){return this._targetGroupArns}set targetGroupArns(value){cdk().traceProperty(this.node,"TargetGroupARNs"),this._targetGroupArns=value}get terminationPolicies(){return this._terminationPolicies}set terminationPolicies(value){cdk().traceProperty(this.node,"TerminationPolicies"),this._terminationPolicies=value}get trafficSources(){return this._trafficSources}set trafficSources(value){cdk().traceProperty(this.node,"TrafficSources"),this._trafficSources=value}get vpcZoneIdentifier(){return this._vpcZoneIdentifier}set vpcZoneIdentifier(value){cdk().traceProperty(this.node,"VPCZoneIdentifier"),this._vpcZoneIdentifier=value}get attrAutoScalingGroupArn(){return cdk().Token.asString(this.getAtt("AutoScalingGroupARN",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoScalingGroupName:this._autoScalingGroupName,availabilityZoneDistribution:this._availabilityZoneDistribution,availabilityZoneIds:this._availabilityZoneIds,availabilityZoneImpairmentPolicy:this._availabilityZoneImpairmentPolicy,availabilityZones:this._availabilityZones,capacityRebalance:this._capacityRebalance,capacityReservationSpecification:this._capacityReservationSpecification,context:this._context,cooldown:this._cooldown,defaultInstanceWarmup:this._defaultInstanceWarmup,deletionProtection:this._deletionProtection,desiredCapacity:this._desiredCapacity,desiredCapacityType:this._desiredCapacityType,healthCheckGracePeriod:this._healthCheckGracePeriod,healthCheckType:this._healthCheckType,instanceId:this._instanceId,instanceLifecyclePolicy:this._instanceLifecyclePolicy,instanceMaintenancePolicy:this._instanceMaintenancePolicy,launchConfigurationName:this._launchConfigurationName,launchTemplate:this._launchTemplate,lifecycleHookSpecificationList:this._lifecycleHookSpecificationList,loadBalancerNames:this._loadBalancerNames,maxInstanceLifetime:this._maxInstanceLifetime,maxSize:this._maxSize,metricsCollection:this._metricsCollection,minSize:this._minSize,mixedInstancesPolicy:this._mixedInstancesPolicy,newInstancesProtectedFromScaleIn:this._newInstancesProtectedFromScaleIn,notificationConfiguration:this._notificationConfiguration,notificationConfigurations:this._notificationConfigurations,placementGroup:this._placementGroup,serviceLinkedRoleArn:this._serviceLinkedRoleArn,skipZonalShiftValidation:this._skipZonalShiftValidation,tags:this.tags.renderTags(),targetGroupArns:this._targetGroupArns,terminationPolicies:this._terminationPolicies,trafficSources:this._trafficSources,vpcZoneIdentifier:this._vpcZoneIdentifier}}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",CfnAutoScalingGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAutoScalingGroupPropsToCloudFormation(props)}}exports.CfnAutoScalingGroup=CfnAutoScalingGroup;function CfnAutoScalingGroupLaunchTemplateSpecificationPropertyValidator(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("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "LaunchTemplateSpecificationProperty"')}function convertCfnAutoScalingGroupLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnAutoScalingGroupLaunchTemplateSpecificationPropertyFromCloudFormation(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("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupLifecycleHookSpecificationPropertyValidator(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("defaultResult",cdk().validateString)(properties.defaultResult)),errors.collect(cdk().propertyValidator("heartbeatTimeout",cdk().validateNumber)(properties.heartbeatTimeout)),errors.collect(cdk().propertyValidator("lifecycleHookName",cdk().requiredValidator)(properties.lifecycleHookName)),errors.collect(cdk().propertyValidator("lifecycleHookName",cdk().validateString)(properties.lifecycleHookName)),errors.collect(cdk().propertyValidator("lifecycleTransition",cdk().requiredValidator)(properties.lifecycleTransition)),errors.collect(cdk().propertyValidator("lifecycleTransition",cdk().validateString)(properties.lifecycleTransition)),errors.collect(cdk().propertyValidator("notificationMetadata",cdk().validateString)(properties.notificationMetadata)),errors.collect(cdk().propertyValidator("notificationTargetArn",cdk().validateString)(properties.notificationTargetArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "LifecycleHookSpecificationProperty"')}function convertCfnAutoScalingGroupLifecycleHookSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupLifecycleHookSpecificationPropertyValidator(properties).assertSuccess(),{DefaultResult:cdk().stringToCloudFormation(properties.defaultResult),HeartbeatTimeout:cdk().numberToCloudFormation(properties.heartbeatTimeout),LifecycleHookName:cdk().stringToCloudFormation(properties.lifecycleHookName),LifecycleTransition:cdk().stringToCloudFormation(properties.lifecycleTransition),NotificationMetadata:cdk().stringToCloudFormation(properties.notificationMetadata),NotificationTargetARN:cdk().stringToCloudFormation(properties.notificationTargetArn),RoleARN:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnAutoScalingGroupLifecycleHookSpecificationPropertyFromCloudFormation(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("defaultResult","DefaultResult",properties.DefaultResult!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultResult):void 0),ret.addPropertyResult("heartbeatTimeout","HeartbeatTimeout",properties.HeartbeatTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.HeartbeatTimeout):void 0),ret.addPropertyResult("lifecycleHookName","LifecycleHookName",properties.LifecycleHookName!=null?cfn_parse().FromCloudFormation.getString(properties.LifecycleHookName):void 0),ret.addPropertyResult("lifecycleTransition","LifecycleTransition",properties.LifecycleTransition!=null?cfn_parse().FromCloudFormation.getString(properties.LifecycleTransition):void 0),ret.addPropertyResult("notificationMetadata","NotificationMetadata",properties.NotificationMetadata!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationMetadata):void 0),ret.addPropertyResult("notificationTargetArn","NotificationTargetARN",properties.NotificationTargetARN!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationTargetARN):void 0),ret.addPropertyResult("roleArn","RoleARN",properties.RoleARN!=null?cfn_parse().FromCloudFormation.getString(properties.RoleARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupMetricsCollectionPropertyValidator(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("granularity",cdk().requiredValidator)(properties.granularity)),errors.collect(cdk().propertyValidator("granularity",cdk().validateString)(properties.granularity)),errors.collect(cdk().propertyValidator("metrics",cdk().listValidator(cdk().validateString))(properties.metrics)),errors.wrap('supplied properties not correct for "MetricsCollectionProperty"')}function convertCfnAutoScalingGroupMetricsCollectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupMetricsCollectionPropertyValidator(properties).assertSuccess(),{Granularity:cdk().stringToCloudFormation(properties.granularity),Metrics:cdk().listMapper(cdk().stringToCloudFormation)(properties.metrics)}):properties}function CfnAutoScalingGroupMetricsCollectionPropertyFromCloudFormation(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("granularity","Granularity",properties.Granularity!=null?cfn_parse().FromCloudFormation.getString(properties.Granularity):void 0),ret.addPropertyResult("metrics","Metrics",properties.Metrics!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Metrics):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupInstancesDistributionPropertyValidator(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("onDemandAllocationStrategy",cdk().validateString)(properties.onDemandAllocationStrategy)),errors.collect(cdk().propertyValidator("onDemandBaseCapacity",cdk().validateNumber)(properties.onDemandBaseCapacity)),errors.collect(cdk().propertyValidator("onDemandPercentageAboveBaseCapacity",cdk().validateNumber)(properties.onDemandPercentageAboveBaseCapacity)),errors.collect(cdk().propertyValidator("spotAllocationStrategy",cdk().validateString)(properties.spotAllocationStrategy)),errors.collect(cdk().propertyValidator("spotInstancePools",cdk().validateNumber)(properties.spotInstancePools)),errors.collect(cdk().propertyValidator("spotMaxPrice",cdk().validateString)(properties.spotMaxPrice)),errors.wrap('supplied properties not correct for "InstancesDistributionProperty"')}function convertCfnAutoScalingGroupInstancesDistributionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupInstancesDistributionPropertyValidator(properties).assertSuccess(),{OnDemandAllocationStrategy:cdk().stringToCloudFormation(properties.onDemandAllocationStrategy),OnDemandBaseCapacity:cdk().numberToCloudFormation(properties.onDemandBaseCapacity),OnDemandPercentageAboveBaseCapacity:cdk().numberToCloudFormation(properties.onDemandPercentageAboveBaseCapacity),SpotAllocationStrategy:cdk().stringToCloudFormation(properties.spotAllocationStrategy),SpotInstancePools:cdk().numberToCloudFormation(properties.spotInstancePools),SpotMaxPrice:cdk().stringToCloudFormation(properties.spotMaxPrice)}):properties}function CfnAutoScalingGroupInstancesDistributionPropertyFromCloudFormation(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("onDemandAllocationStrategy","OnDemandAllocationStrategy",properties.OnDemandAllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.OnDemandAllocationStrategy):void 0),ret.addPropertyResult("onDemandBaseCapacity","OnDemandBaseCapacity",properties.OnDemandBaseCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandBaseCapacity):void 0),ret.addPropertyResult("onDemandPercentageAboveBaseCapacity","OnDemandPercentageAboveBaseCapacity",properties.OnDemandPercentageAboveBaseCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandPercentageAboveBaseCapacity):void 0),ret.addPropertyResult("spotAllocationStrategy","SpotAllocationStrategy",properties.SpotAllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.SpotAllocationStrategy):void 0),ret.addPropertyResult("spotInstancePools","SpotInstancePools",properties.SpotInstancePools!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotInstancePools):void 0),ret.addPropertyResult("spotMaxPrice","SpotMaxPrice",properties.SpotMaxPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotMaxPrice):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupAcceleratorCountRequestPropertyValidator(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 convertCfnAutoScalingGroupAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupAcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupAcceleratorCountRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyValidator(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 convertCfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyValidator(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 convertCfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyValidator(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 convertCfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupMemoryMiBRequestPropertyValidator(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 "MemoryMiBRequestProperty"')}function convertCfnAutoScalingGroupMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupMemoryMiBRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyValidator(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 convertCfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupNetworkInterfaceCountRequestPropertyValidator(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 convertCfnAutoScalingGroupNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupNetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupNetworkInterfaceCountRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupTotalLocalStorageGBRequestPropertyValidator(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 convertCfnAutoScalingGroupTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupTotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupTotalLocalStorageGBRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupVCpuCountRequestPropertyValidator(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 "VCpuCountRequestProperty"')}function convertCfnAutoScalingGroupVCpuCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupVCpuCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnAutoScalingGroupVCpuCountRequestPropertyFromCloudFormation(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 CfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyValidator(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("instanceFamily",cdk().validateString)(properties.instanceFamily)),errors.wrap('supplied properties not correct for "PerformanceFactorReferenceRequestProperty"')}function convertCfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyValidator(properties).assertSuccess(),{InstanceFamily:cdk().stringToCloudFormation(properties.instanceFamily)}):properties}function CfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyFromCloudFormation(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("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupCpuPerformanceFactorRequestPropertyValidator(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("references",cdk().listValidator(CfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyValidator))(properties.references)),errors.wrap('supplied properties not correct for "CpuPerformanceFactorRequestProperty"')}function convertCfnAutoScalingGroupCpuPerformanceFactorRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupCpuPerformanceFactorRequestPropertyValidator(properties).assertSuccess(),{References:cdk().listMapper(convertCfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyToCloudFormation)(properties.references)}):properties}function CfnAutoScalingGroupCpuPerformanceFactorRequestPropertyFromCloudFormation(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("references","References",properties.References!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupPerformanceFactorReferenceRequestPropertyFromCloudFormation)(properties.References):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyValidator(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",CfnAutoScalingGroupCpuPerformanceFactorRequestPropertyValidator)(properties.cpu)),errors.wrap('supplied properties not correct for "BaselinePerformanceFactorsRequestProperty"')}function convertCfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyValidator(properties).assertSuccess(),{Cpu:convertCfnAutoScalingGroupCpuPerformanceFactorRequestPropertyToCloudFormation(properties.cpu)}):properties}function CfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyFromCloudFormation(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?CfnAutoScalingGroupCpuPerformanceFactorRequestPropertyFromCloudFormation(properties.Cpu):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupInstanceRequirementsPropertyValidator(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",CfnAutoScalingGroupAcceleratorCountRequestPropertyValidator)(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",CfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyValidator)(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",CfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk().propertyValidator("baselinePerformanceFactors",CfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyValidator)(properties.baselinePerformanceFactors)),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",CfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk().propertyValidator("memoryMiB",cdk().requiredValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("memoryMiB",CfnAutoScalingGroupMemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("networkBandwidthGbps",CfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk().propertyValidator("networkInterfaceCount",CfnAutoScalingGroupNetworkInterfaceCountRequestPropertyValidator)(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",CfnAutoScalingGroupTotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk().propertyValidator("vCpuCount",cdk().requiredValidator)(properties.vCpuCount)),errors.collect(cdk().propertyValidator("vCpuCount",CfnAutoScalingGroupVCpuCountRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsProperty"')}function convertCfnAutoScalingGroupInstanceRequirementsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupInstanceRequirementsPropertyValidator(properties).assertSuccess(),{AcceleratorCount:convertCfnAutoScalingGroupAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:convertCfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk().stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:convertCfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BaselinePerformanceFactors:convertCfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties.baselinePerformanceFactors),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:convertCfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:convertCfnAutoScalingGroupMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:convertCfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:convertCfnAutoScalingGroupNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk().booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:convertCfnAutoScalingGroupTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:convertCfnAutoScalingGroupVCpuCountRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnAutoScalingGroupInstanceRequirementsPropertyFromCloudFormation(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?CfnAutoScalingGroupAcceleratorCountRequestPropertyFromCloudFormation(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?CfnAutoScalingGroupAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(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?CfnAutoScalingGroupBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("baselinePerformanceFactors","BaselinePerformanceFactors",properties.BaselinePerformanceFactors!=null?CfnAutoScalingGroupBaselinePerformanceFactorsRequestPropertyFromCloudFormation(properties.BaselinePerformanceFactors):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?CfnAutoScalingGroupMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnAutoScalingGroupMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnAutoScalingGroupNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnAutoScalingGroupNetworkInterfaceCountRequestPropertyFromCloudFormation(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?CfnAutoScalingGroupTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnAutoScalingGroupVCpuCountRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupLaunchTemplateOverridesPropertyValidator(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("imageId",cdk().validateString)(properties.imageId)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnAutoScalingGroupInstanceRequirementsPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("launchTemplateSpecification",CfnAutoScalingGroupLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk().propertyValidator("weightedCapacity",cdk().validateString)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "LaunchTemplateOverridesProperty"')}function convertCfnAutoScalingGroupLaunchTemplateOverridesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupLaunchTemplateOverridesPropertyValidator(properties).assertSuccess(),{ImageId:cdk().stringToCloudFormation(properties.imageId),InstanceRequirements:convertCfnAutoScalingGroupInstanceRequirementsPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk().stringToCloudFormation(properties.instanceType),LaunchTemplateSpecification:convertCfnAutoScalingGroupLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplateSpecification),WeightedCapacity:cdk().stringToCloudFormation(properties.weightedCapacity)}):properties}function CfnAutoScalingGroupLaunchTemplateOverridesPropertyFromCloudFormation(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("imageId","ImageId",properties.ImageId!=null?cfn_parse().FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnAutoScalingGroupInstanceRequirementsPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnAutoScalingGroupLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse().FromCloudFormation.getString(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupLaunchTemplatePropertyValidator(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("launchTemplateSpecification",cdk().requiredValidator)(properties.launchTemplateSpecification)),errors.collect(cdk().propertyValidator("launchTemplateSpecification",CfnAutoScalingGroupLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk().propertyValidator("overrides",cdk().listValidator(CfnAutoScalingGroupLaunchTemplateOverridesPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "LaunchTemplateProperty"')}function convertCfnAutoScalingGroupLaunchTemplatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupLaunchTemplatePropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:convertCfnAutoScalingGroupLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk().listMapper(convertCfnAutoScalingGroupLaunchTemplateOverridesPropertyToCloudFormation)(properties.overrides)}):properties}function CfnAutoScalingGroupLaunchTemplatePropertyFromCloudFormation(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("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnAutoScalingGroupLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupLaunchTemplateOverridesPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupMixedInstancesPolicyPropertyValidator(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("instancesDistribution",CfnAutoScalingGroupInstancesDistributionPropertyValidator)(properties.instancesDistribution)),errors.collect(cdk().propertyValidator("launchTemplate",cdk().requiredValidator)(properties.launchTemplate)),errors.collect(cdk().propertyValidator("launchTemplate",CfnAutoScalingGroupLaunchTemplatePropertyValidator)(properties.launchTemplate)),errors.wrap('supplied properties not correct for "MixedInstancesPolicyProperty"')}function convertCfnAutoScalingGroupMixedInstancesPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupMixedInstancesPolicyPropertyValidator(properties).assertSuccess(),{InstancesDistribution:convertCfnAutoScalingGroupInstancesDistributionPropertyToCloudFormation(properties.instancesDistribution),LaunchTemplate:convertCfnAutoScalingGroupLaunchTemplatePropertyToCloudFormation(properties.launchTemplate)}):properties}function CfnAutoScalingGroupMixedInstancesPolicyPropertyFromCloudFormation(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("instancesDistribution","InstancesDistribution",properties.InstancesDistribution!=null?CfnAutoScalingGroupInstancesDistributionPropertyFromCloudFormation(properties.InstancesDistribution):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnAutoScalingGroupLaunchTemplatePropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupNotificationConfigurationPropertyValidator(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("notificationTypes",cdk().listValidator(cdk().validateString))(properties.notificationTypes)),errors.collect(cdk().propertyValidator("topicArn",cdk().requiredValidator)(properties.topicArn)),errors.collect(cdk().propertyValidator("topicArn",cdk().validateString)(properties.topicArn)),errors.wrap('supplied properties not correct for "NotificationConfigurationProperty"')}function convertCfnAutoScalingGroupNotificationConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupNotificationConfigurationPropertyValidator(properties).assertSuccess(),{NotificationTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.notificationTypes),TopicARN:cdk().stringToCloudFormation(properties.topicArn)}):properties}function CfnAutoScalingGroupNotificationConfigurationPropertyFromCloudFormation(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("notificationTypes","NotificationTypes",properties.NotificationTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NotificationTypes):void 0),ret.addPropertyResult("topicArn","TopicARN",properties.TopicARN!=null?cfn_parse().FromCloudFormation.getString(properties.TopicARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupTagPropertyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("propagateAtLaunch",cdk().requiredValidator)(properties.propagateAtLaunch)),errors.collect(cdk().propertyValidator("propagateAtLaunch",cdk().validateBoolean)(properties.propagateAtLaunch)),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 "TagPropertyProperty"')}function convertCfnAutoScalingGroupTagPropertyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupTagPropertyPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),PropagateAtLaunch:cdk().booleanToCloudFormation(properties.propagateAtLaunch),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnAutoScalingGroupTagPropertyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("propagateAtLaunch","PropagateAtLaunch",properties.PropagateAtLaunch!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PropagateAtLaunch):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyValidator(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("impairedZoneHealthCheckBehavior",cdk().requiredValidator)(properties.impairedZoneHealthCheckBehavior)),errors.collect(cdk().propertyValidator("impairedZoneHealthCheckBehavior",cdk().validateString)(properties.impairedZoneHealthCheckBehavior)),errors.collect(cdk().propertyValidator("zonalShiftEnabled",cdk().requiredValidator)(properties.zonalShiftEnabled)),errors.collect(cdk().propertyValidator("zonalShiftEnabled",cdk().validateBoolean)(properties.zonalShiftEnabled)),errors.wrap('supplied properties not correct for "AvailabilityZoneImpairmentPolicyProperty"')}function convertCfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyValidator(properties).assertSuccess(),{ImpairedZoneHealthCheckBehavior:cdk().stringToCloudFormation(properties.impairedZoneHealthCheckBehavior),ZonalShiftEnabled:cdk().booleanToCloudFormation(properties.zonalShiftEnabled)}):properties}function CfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyFromCloudFormation(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("impairedZoneHealthCheckBehavior","ImpairedZoneHealthCheckBehavior",properties.ImpairedZoneHealthCheckBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.ImpairedZoneHealthCheckBehavior):void 0),ret.addPropertyResult("zonalShiftEnabled","ZonalShiftEnabled",properties.ZonalShiftEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ZonalShiftEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupRetentionTriggersPropertyValidator(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("terminateHookAbandon",cdk().validateString)(properties.terminateHookAbandon)),errors.wrap('supplied properties not correct for "RetentionTriggersProperty"')}function convertCfnAutoScalingGroupRetentionTriggersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupRetentionTriggersPropertyValidator(properties).assertSuccess(),{TerminateHookAbandon:cdk().stringToCloudFormation(properties.terminateHookAbandon)}):properties}function CfnAutoScalingGroupRetentionTriggersPropertyFromCloudFormation(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("terminateHookAbandon","TerminateHookAbandon",properties.TerminateHookAbandon!=null?cfn_parse().FromCloudFormation.getString(properties.TerminateHookAbandon):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupInstanceLifecyclePolicyPropertyValidator(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("retentionTriggers",CfnAutoScalingGroupRetentionTriggersPropertyValidator)(properties.retentionTriggers)),errors.wrap('supplied properties not correct for "InstanceLifecyclePolicyProperty"')}function convertCfnAutoScalingGroupInstanceLifecyclePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupInstanceLifecyclePolicyPropertyValidator(properties).assertSuccess(),{RetentionTriggers:convertCfnAutoScalingGroupRetentionTriggersPropertyToCloudFormation(properties.retentionTriggers)}):properties}function CfnAutoScalingGroupInstanceLifecyclePolicyPropertyFromCloudFormation(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("retentionTriggers","RetentionTriggers",properties.RetentionTriggers!=null?CfnAutoScalingGroupRetentionTriggersPropertyFromCloudFormation(properties.RetentionTriggers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupAvailabilityZoneDistributionPropertyValidator(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("capacityDistributionStrategy",cdk().validateString)(properties.capacityDistributionStrategy)),errors.wrap('supplied properties not correct for "AvailabilityZoneDistributionProperty"')}function convertCfnAutoScalingGroupAvailabilityZoneDistributionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupAvailabilityZoneDistributionPropertyValidator(properties).assertSuccess(),{CapacityDistributionStrategy:cdk().stringToCloudFormation(properties.capacityDistributionStrategy)}):properties}function CfnAutoScalingGroupAvailabilityZoneDistributionPropertyFromCloudFormation(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("capacityDistributionStrategy","CapacityDistributionStrategy",properties.CapacityDistributionStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityDistributionStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupInstanceMaintenancePolicyPropertyValidator(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("maxHealthyPercentage",cdk().validateNumber)(properties.maxHealthyPercentage)),errors.collect(cdk().propertyValidator("minHealthyPercentage",cdk().validateNumber)(properties.minHealthyPercentage)),errors.wrap('supplied properties not correct for "InstanceMaintenancePolicyProperty"')}function convertCfnAutoScalingGroupInstanceMaintenancePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupInstanceMaintenancePolicyPropertyValidator(properties).assertSuccess(),{MaxHealthyPercentage:cdk().numberToCloudFormation(properties.maxHealthyPercentage),MinHealthyPercentage:cdk().numberToCloudFormation(properties.minHealthyPercentage)}):properties}function CfnAutoScalingGroupInstanceMaintenancePolicyPropertyFromCloudFormation(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("maxHealthyPercentage","MaxHealthyPercentage",properties.MaxHealthyPercentage!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxHealthyPercentage):void 0),ret.addPropertyResult("minHealthyPercentage","MinHealthyPercentage",properties.MinHealthyPercentage!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinHealthyPercentage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupTrafficSourceIdentifierPropertyValidator(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("identifier",cdk().requiredValidator)(properties.identifier)),errors.collect(cdk().propertyValidator("identifier",cdk().validateString)(properties.identifier)),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 "TrafficSourceIdentifierProperty"')}function convertCfnAutoScalingGroupTrafficSourceIdentifierPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupTrafficSourceIdentifierPropertyValidator(properties).assertSuccess(),{Identifier:cdk().stringToCloudFormation(properties.identifier),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnAutoScalingGroupTrafficSourceIdentifierPropertyFromCloudFormation(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("identifier","Identifier",properties.Identifier!=null?cfn_parse().FromCloudFormation.getString(properties.Identifier):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupCapacityReservationTargetPropertyValidator(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("capacityReservationIds",cdk().listValidator(cdk().validateString))(properties.capacityReservationIds)),errors.collect(cdk().propertyValidator("capacityReservationResourceGroupArns",cdk().listValidator(cdk().validateString))(properties.capacityReservationResourceGroupArns)),errors.wrap('supplied properties not correct for "CapacityReservationTargetProperty"')}function convertCfnAutoScalingGroupCapacityReservationTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupCapacityReservationTargetPropertyValidator(properties).assertSuccess(),{CapacityReservationIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.capacityReservationIds),CapacityReservationResourceGroupArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.capacityReservationResourceGroupArns)}):properties}function CfnAutoScalingGroupCapacityReservationTargetPropertyFromCloudFormation(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("capacityReservationIds","CapacityReservationIds",properties.CapacityReservationIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CapacityReservationIds):void 0),ret.addPropertyResult("capacityReservationResourceGroupArns","CapacityReservationResourceGroupArns",properties.CapacityReservationResourceGroupArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CapacityReservationResourceGroupArns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupCapacityReservationSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("capacityReservationPreference",cdk().requiredValidator)(properties.capacityReservationPreference)),errors.collect(cdk().propertyValidator("capacityReservationPreference",cdk().validateString)(properties.capacityReservationPreference)),errors.collect(cdk().propertyValidator("capacityReservationTarget",CfnAutoScalingGroupCapacityReservationTargetPropertyValidator)(properties.capacityReservationTarget)),errors.wrap('supplied properties not correct for "CapacityReservationSpecificationProperty"')}function convertCfnAutoScalingGroupCapacityReservationSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupCapacityReservationSpecificationPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk().stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationTarget:convertCfnAutoScalingGroupCapacityReservationTargetPropertyToCloudFormation(properties.capacityReservationTarget)}):properties}function CfnAutoScalingGroupCapacityReservationSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityReservationPreference","CapacityReservationPreference",properties.CapacityReservationPreference!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationPreference):void 0),ret.addPropertyResult("capacityReservationTarget","CapacityReservationTarget",properties.CapacityReservationTarget!=null?CfnAutoScalingGroupCapacityReservationTargetPropertyFromCloudFormation(properties.CapacityReservationTarget):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAutoScalingGroupPropsValidator(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("autoScalingGroupName",cdk().validateString)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("availabilityZoneDistribution",CfnAutoScalingGroupAvailabilityZoneDistributionPropertyValidator)(properties.availabilityZoneDistribution)),errors.collect(cdk().propertyValidator("availabilityZoneIds",cdk().listValidator(cdk().validateString))(properties.availabilityZoneIds)),errors.collect(cdk().propertyValidator("availabilityZoneImpairmentPolicy",CfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyValidator)(properties.availabilityZoneImpairmentPolicy)),errors.collect(cdk().propertyValidator("availabilityZones",cdk().listValidator(cdk().validateString))(properties.availabilityZones)),errors.collect(cdk().propertyValidator("capacityRebalance",cdk().validateBoolean)(properties.capacityRebalance)),errors.collect(cdk().propertyValidator("capacityReservationSpecification",CfnAutoScalingGroupCapacityReservationSpecificationPropertyValidator)(properties.capacityReservationSpecification)),errors.collect(cdk().propertyValidator("context",cdk().validateString)(properties.context)),errors.collect(cdk().propertyValidator("cooldown",cdk().validateString)(properties.cooldown)),errors.collect(cdk().propertyValidator("defaultInstanceWarmup",cdk().validateNumber)(properties.defaultInstanceWarmup)),errors.collect(cdk().propertyValidator("deletionProtection",cdk().validateString)(properties.deletionProtection)),errors.collect(cdk().propertyValidator("desiredCapacity",cdk().validateString)(properties.desiredCapacity)),errors.collect(cdk().propertyValidator("desiredCapacityType",cdk().validateString)(properties.desiredCapacityType)),errors.collect(cdk().propertyValidator("healthCheckGracePeriod",cdk().validateNumber)(properties.healthCheckGracePeriod)),errors.collect(cdk().propertyValidator("healthCheckType",cdk().validateString)(properties.healthCheckType)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("instanceLifecyclePolicy",CfnAutoScalingGroupInstanceLifecyclePolicyPropertyValidator)(properties.instanceLifecyclePolicy)),errors.collect(cdk().propertyValidator("instanceMaintenancePolicy",CfnAutoScalingGroupInstanceMaintenancePolicyPropertyValidator)(properties.instanceMaintenancePolicy)),errors.collect(cdk().propertyValidator("launchConfigurationName",cdk().validateString)(properties.launchConfigurationName)),errors.collect(cdk().propertyValidator("launchTemplate",CfnAutoScalingGroupLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplate)),errors.collect(cdk().propertyValidator("lifecycleHookSpecificationList",cdk().listValidator(CfnAutoScalingGroupLifecycleHookSpecificationPropertyValidator))(properties.lifecycleHookSpecificationList)),errors.collect(cdk().propertyValidator("loadBalancerNames",cdk().listValidator(cdk().validateString))(properties.loadBalancerNames)),errors.collect(cdk().propertyValidator("maxInstanceLifetime",cdk().validateNumber)(properties.maxInstanceLifetime)),errors.collect(cdk().propertyValidator("maxSize",cdk().requiredValidator)(properties.maxSize)),errors.collect(cdk().propertyValidator("maxSize",cdk().validateString)(properties.maxSize)),errors.collect(cdk().propertyValidator("metricsCollection",cdk().listValidator(CfnAutoScalingGroupMetricsCollectionPropertyValidator))(properties.metricsCollection)),errors.collect(cdk().propertyValidator("minSize",cdk().requiredValidator)(properties.minSize)),errors.collect(cdk().propertyValidator("minSize",cdk().validateString)(properties.minSize)),errors.collect(cdk().propertyValidator("mixedInstancesPolicy",CfnAutoScalingGroupMixedInstancesPolicyPropertyValidator)(properties.mixedInstancesPolicy)),errors.collect(cdk().propertyValidator("newInstancesProtectedFromScaleIn",cdk().validateBoolean)(properties.newInstancesProtectedFromScaleIn)),errors.collect(cdk().propertyValidator("notificationConfiguration",CfnAutoScalingGroupNotificationConfigurationPropertyValidator)(properties.notificationConfiguration)),errors.collect(cdk().propertyValidator("notificationConfigurations",cdk().listValidator(CfnAutoScalingGroupNotificationConfigurationPropertyValidator))(properties.notificationConfigurations)),errors.collect(cdk().propertyValidator("placementGroup",cdk().validateString)(properties.placementGroup)),errors.collect(cdk().propertyValidator("serviceLinkedRoleArn",cdk().validateString)(properties.serviceLinkedRoleArn)),errors.collect(cdk().propertyValidator("skipZonalShiftValidation",cdk().validateBoolean)(properties.skipZonalShiftValidation)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(CfnAutoScalingGroupTagPropertyPropertyValidator))(properties.tags)),errors.collect(cdk().propertyValidator("targetGroupArns",cdk().listValidator(cdk().validateString))(properties.targetGroupArns)),errors.collect(cdk().propertyValidator("terminationPolicies",cdk().listValidator(cdk().validateString))(properties.terminationPolicies)),errors.collect(cdk().propertyValidator("trafficSources",cdk().listValidator(CfnAutoScalingGroupTrafficSourceIdentifierPropertyValidator))(properties.trafficSources)),errors.collect(cdk().propertyValidator("vpcZoneIdentifier",cdk().listValidator(cdk().validateString))(properties.vpcZoneIdentifier)),errors.wrap('supplied properties not correct for "CfnAutoScalingGroupProps"')}function convertCfnAutoScalingGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAutoScalingGroupPropsValidator(properties).assertSuccess(),{AutoScalingGroupName:cdk().stringToCloudFormation(properties.autoScalingGroupName),AvailabilityZoneDistribution:convertCfnAutoScalingGroupAvailabilityZoneDistributionPropertyToCloudFormation(properties.availabilityZoneDistribution),AvailabilityZoneIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.availabilityZoneIds),AvailabilityZoneImpairmentPolicy:convertCfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyToCloudFormation(properties.availabilityZoneImpairmentPolicy),AvailabilityZones:cdk().listMapper(cdk().stringToCloudFormation)(properties.availabilityZones),CapacityRebalance:cdk().booleanToCloudFormation(properties.capacityRebalance),CapacityReservationSpecification:convertCfnAutoScalingGroupCapacityReservationSpecificationPropertyToCloudFormation(properties.capacityReservationSpecification),Context:cdk().stringToCloudFormation(properties.context),Cooldown:cdk().stringToCloudFormation(properties.cooldown),DefaultInstanceWarmup:cdk().numberToCloudFormation(properties.defaultInstanceWarmup),DeletionProtection:cdk().stringToCloudFormation(properties.deletionProtection),DesiredCapacity:cdk().stringToCloudFormation(properties.desiredCapacity),DesiredCapacityType:cdk().stringToCloudFormation(properties.desiredCapacityType),HealthCheckGracePeriod:cdk().numberToCloudFormation(properties.healthCheckGracePeriod),HealthCheckType:cdk().stringToCloudFormation(properties.healthCheckType),InstanceId:cdk().stringToCloudFormation(properties.instanceId),InstanceLifecyclePolicy:convertCfnAutoScalingGroupInstanceLifecyclePolicyPropertyToCloudFormation(properties.instanceLifecyclePolicy),InstanceMaintenancePolicy:convertCfnAutoScalingGroupInstanceMaintenancePolicyPropertyToCloudFormation(properties.instanceMaintenancePolicy),LaunchConfigurationName:cdk().stringToCloudFormation(properties.launchConfigurationName),LaunchTemplate:convertCfnAutoScalingGroupLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplate),LifecycleHookSpecificationList:cdk().listMapper(convertCfnAutoScalingGroupLifecycleHookSpecificationPropertyToCloudFormation)(properties.lifecycleHookSpecificationList),LoadBalancerNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.loadBalancerNames),MaxInstanceLifetime:cdk().numberToCloudFormation(properties.maxInstanceLifetime),MaxSize:cdk().stringToCloudFormation(properties.maxSize),MetricsCollection:cdk().listMapper(convertCfnAutoScalingGroupMetricsCollectionPropertyToCloudFormation)(properties.metricsCollection),MinSize:cdk().stringToCloudFormation(properties.minSize),MixedInstancesPolicy:convertCfnAutoScalingGroupMixedInstancesPolicyPropertyToCloudFormation(properties.mixedInstancesPolicy),NewInstancesProtectedFromScaleIn:cdk().booleanToCloudFormation(properties.newInstancesProtectedFromScaleIn),NotificationConfiguration:convertCfnAutoScalingGroupNotificationConfigurationPropertyToCloudFormation(properties.notificationConfiguration),NotificationConfigurations:cdk().listMapper(convertCfnAutoScalingGroupNotificationConfigurationPropertyToCloudFormation)(properties.notificationConfigurations),PlacementGroup:cdk().stringToCloudFormation(properties.placementGroup),ServiceLinkedRoleARN:cdk().stringToCloudFormation(properties.serviceLinkedRoleArn),SkipZonalShiftValidation:cdk().booleanToCloudFormation(properties.skipZonalShiftValidation),Tags:cdk().listMapper(convertCfnAutoScalingGroupTagPropertyPropertyToCloudFormation)(properties.tags),TargetGroupARNs:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetGroupArns),TerminationPolicies:cdk().listMapper(cdk().stringToCloudFormation)(properties.terminationPolicies),TrafficSources:cdk().listMapper(convertCfnAutoScalingGroupTrafficSourceIdentifierPropertyToCloudFormation)(properties.trafficSources),VPCZoneIdentifier:cdk().listMapper(cdk().stringToCloudFormation)(properties.vpcZoneIdentifier)}):properties}function CfnAutoScalingGroupPropsFromCloudFormation(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("autoScalingGroupName","AutoScalingGroupName",properties.AutoScalingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupName):void 0),ret.addPropertyResult("availabilityZoneDistribution","AvailabilityZoneDistribution",properties.AvailabilityZoneDistribution!=null?CfnAutoScalingGroupAvailabilityZoneDistributionPropertyFromCloudFormation(properties.AvailabilityZoneDistribution):void 0),ret.addPropertyResult("availabilityZoneIds","AvailabilityZoneIds",properties.AvailabilityZoneIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AvailabilityZoneIds):void 0),ret.addPropertyResult("availabilityZoneImpairmentPolicy","AvailabilityZoneImpairmentPolicy",properties.AvailabilityZoneImpairmentPolicy!=null?CfnAutoScalingGroupAvailabilityZoneImpairmentPolicyPropertyFromCloudFormation(properties.AvailabilityZoneImpairmentPolicy):void 0),ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AvailabilityZones):void 0),ret.addPropertyResult("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CapacityRebalance):void 0),ret.addPropertyResult("capacityReservationSpecification","CapacityReservationSpecification",properties.CapacityReservationSpecification!=null?CfnAutoScalingGroupCapacityReservationSpecificationPropertyFromCloudFormation(properties.CapacityReservationSpecification):void 0),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse().FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("cooldown","Cooldown",properties.Cooldown!=null?cfn_parse().FromCloudFormation.getString(properties.Cooldown):void 0),ret.addPropertyResult("defaultInstanceWarmup","DefaultInstanceWarmup",properties.DefaultInstanceWarmup!=null?cfn_parse().FromCloudFormation.getNumber(properties.DefaultInstanceWarmup):void 0),ret.addPropertyResult("deletionProtection","DeletionProtection",properties.DeletionProtection!=null?cfn_parse().FromCloudFormation.getString(properties.DeletionProtection):void 0),ret.addPropertyResult("desiredCapacity","DesiredCapacity",properties.DesiredCapacity!=null?cfn_parse().FromCloudFormation.getString(properties.DesiredCapacity):void 0),ret.addPropertyResult("desiredCapacityType","DesiredCapacityType",properties.DesiredCapacityType!=null?cfn_parse().FromCloudFormation.getString(properties.DesiredCapacityType):void 0),ret.addPropertyResult("healthCheckGracePeriod","HealthCheckGracePeriod",properties.HealthCheckGracePeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.HealthCheckGracePeriod):void 0),ret.addPropertyResult("healthCheckType","HealthCheckType",properties.HealthCheckType!=null?cfn_parse().FromCloudFormation.getString(properties.HealthCheckType):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("instanceLifecyclePolicy","InstanceLifecyclePolicy",properties.InstanceLifecyclePolicy!=null?CfnAutoScalingGroupInstanceLifecyclePolicyPropertyFromCloudFormation(properties.InstanceLifecyclePolicy):void 0),ret.addPropertyResult("instanceMaintenancePolicy","InstanceMaintenancePolicy",properties.InstanceMaintenancePolicy!=null?CfnAutoScalingGroupInstanceMaintenancePolicyPropertyFromCloudFormation(properties.InstanceMaintenancePolicy):void 0),ret.addPropertyResult("launchConfigurationName","LaunchConfigurationName",properties.LaunchConfigurationName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchConfigurationName):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnAutoScalingGroupLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addPropertyResult("lifecycleHookSpecificationList","LifecycleHookSpecificationList",properties.LifecycleHookSpecificationList!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupLifecycleHookSpecificationPropertyFromCloudFormation)(properties.LifecycleHookSpecificationList):void 0),ret.addPropertyResult("loadBalancerNames","LoadBalancerNames",properties.LoadBalancerNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LoadBalancerNames):void 0),ret.addPropertyResult("maxInstanceLifetime","MaxInstanceLifetime",properties.MaxInstanceLifetime!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxInstanceLifetime):void 0),ret.addPropertyResult("maxSize","MaxSize",properties.MaxSize!=null?cfn_parse().FromCloudFormation.getString(properties.MaxSize):void 0),ret.addPropertyResult("metricsCollection","MetricsCollection",properties.MetricsCollection!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupMetricsCollectionPropertyFromCloudFormation)(properties.MetricsCollection):void 0),ret.addPropertyResult("minSize","MinSize",properties.MinSize!=null?cfn_parse().FromCloudFormation.getString(properties.MinSize):void 0),ret.addPropertyResult("mixedInstancesPolicy","MixedInstancesPolicy",properties.MixedInstancesPolicy!=null?CfnAutoScalingGroupMixedInstancesPolicyPropertyFromCloudFormation(properties.MixedInstancesPolicy):void 0),ret.addPropertyResult("newInstancesProtectedFromScaleIn","NewInstancesProtectedFromScaleIn",properties.NewInstancesProtectedFromScaleIn!=null?cfn_parse().FromCloudFormation.getBoolean(properties.NewInstancesProtectedFromScaleIn):void 0),ret.addPropertyResult("notificationConfiguration","NotificationConfiguration",properties.NotificationConfiguration!=null?CfnAutoScalingGroupNotificationConfigurationPropertyFromCloudFormation(properties.NotificationConfiguration):void 0),ret.addPropertyResult("notificationConfigurations","NotificationConfigurations",properties.NotificationConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupNotificationConfigurationPropertyFromCloudFormation)(properties.NotificationConfigurations):void 0),ret.addPropertyResult("placementGroup","PlacementGroup",properties.PlacementGroup!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementGroup):void 0),ret.addPropertyResult("serviceLinkedRoleArn","ServiceLinkedRoleARN",properties.ServiceLinkedRoleARN!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceLinkedRoleARN):void 0),ret.addPropertyResult("skipZonalShiftValidation","SkipZonalShiftValidation",properties.SkipZonalShiftValidation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SkipZonalShiftValidation):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupTagPropertyPropertyFromCloudFormation)(properties.Tags):void 0),ret.addPropertyResult("targetGroupArns","TargetGroupARNs",properties.TargetGroupARNs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetGroupARNs):void 0),ret.addPropertyResult("terminationPolicies","TerminationPolicies",properties.TerminationPolicies!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TerminationPolicies):void 0),ret.addPropertyResult("trafficSources","TrafficSources",properties.TrafficSources!=null?cfn_parse().FromCloudFormation.getArray(CfnAutoScalingGroupTrafficSourceIdentifierPropertyFromCloudFormation)(properties.TrafficSources):void 0),ret.addPropertyResult("vpcZoneIdentifier","VPCZoneIdentifier",properties.VPCZoneIdentifier!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.VPCZoneIdentifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLaunchConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnLaunchConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::LaunchConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLaunchConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLaunchConfiguration(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 isCfnLaunchConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLaunchConfiguration.CFN_RESOURCE_TYPE_NAME}_associatePublicIpAddress;_blockDeviceMappings;_classicLinkVpcId;_classicLinkVpcSecurityGroups;_ebsOptimized;_iamInstanceProfile;_imageId;_instanceId;_instanceMonitoring;_instanceType;_kernelId;_keyName;_launchConfigurationName;_metadataOptions;_placementTenancy;_ramDiskId;_securityGroups;_spotPrice;_userData;cfnPropertyNames={associatePublicIpAddress:"AssociatePublicIpAddress",blockDeviceMappings:"BlockDeviceMappings",classicLinkVpcId:"ClassicLinkVPCId",classicLinkVpcSecurityGroups:"ClassicLinkVPCSecurityGroups",ebsOptimized:"EbsOptimized",iamInstanceProfile:"IamInstanceProfile",imageId:"ImageId",instanceId:"InstanceId",instanceMonitoring:"InstanceMonitoring",instanceType:"InstanceType",kernelId:"KernelId",keyName:"KeyName",launchConfigurationName:"LaunchConfigurationName",metadataOptions:"MetadataOptions",placementTenancy:"PlacementTenancy",ramDiskId:"RamDiskId",securityGroups:"SecurityGroups",spotPrice:"SpotPrice",userData:"UserData"};constructor(scope,id,props){super(scope,id,{type:CfnLaunchConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnLaunchConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLaunchConfiguration),error}cdk().requireProperty(props,"imageId",this),cdk().requireProperty(props,"instanceType",this),this._associatePublicIpAddress=props.associatePublicIpAddress,this._blockDeviceMappings=props.blockDeviceMappings,this._classicLinkVpcId=props.classicLinkVpcId,this._classicLinkVpcSecurityGroups=props.classicLinkVpcSecurityGroups,this._ebsOptimized=props.ebsOptimized,this._iamInstanceProfile=cdk().getRefProperty(props.iamInstanceProfile?.instanceProfileRef,"instanceProfileName")??cdk().ensureStringOrUndefined(props.iamInstanceProfile,"iamInstanceProfile","iam.IInstanceProfileRef | string"),this._imageId=props.imageId,this._instanceId=props.instanceId,this._instanceMonitoring=props.instanceMonitoring,this._instanceType=props.instanceType,this._kernelId=props.kernelId,this._keyName=props.keyName,this._launchConfigurationName=props.launchConfigurationName,this._metadataOptions=props.metadataOptions,this._placementTenancy=props.placementTenancy,this._ramDiskId=props.ramDiskId,this._securityGroups=cdk().mapArrayInPlace(props.securityGroups,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"securityGroups","ec2.ISecurityGroupRef | string")),this._spotPrice=props.spotPrice,this._userData=props.userData}get launchConfigurationRef(){return{launchConfigurationName:this.ref}}get associatePublicIpAddress(){return this._associatePublicIpAddress}set associatePublicIpAddress(value){cdk().traceProperty(this.node,"AssociatePublicIpAddress"),this._associatePublicIpAddress=value}get blockDeviceMappings(){return this._blockDeviceMappings}set blockDeviceMappings(value){cdk().traceProperty(this.node,"BlockDeviceMappings"),this._blockDeviceMappings=value}get classicLinkVpcId(){return this._classicLinkVpcId}set classicLinkVpcId(value){cdk().traceProperty(this.node,"ClassicLinkVPCId"),this._classicLinkVpcId=value}get classicLinkVpcSecurityGroups(){return this._classicLinkVpcSecurityGroups}set classicLinkVpcSecurityGroups(value){cdk().traceProperty(this.node,"ClassicLinkVPCSecurityGroups"),this._classicLinkVpcSecurityGroups=value}get ebsOptimized(){return this._ebsOptimized}set ebsOptimized(value){cdk().traceProperty(this.node,"EbsOptimized"),this._ebsOptimized=value}get iamInstanceProfile(){return this._iamInstanceProfile}set iamInstanceProfile(value){cdk().traceProperty(this.node,"IamInstanceProfile"),this._iamInstanceProfile=value}get imageId(){return this._imageId}set imageId(value){cdk().traceProperty(this.node,"ImageId"),this._imageId=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get instanceMonitoring(){return this._instanceMonitoring}set instanceMonitoring(value){cdk().traceProperty(this.node,"InstanceMonitoring"),this._instanceMonitoring=value}get instanceType(){return this._instanceType}set instanceType(value){cdk().traceProperty(this.node,"InstanceType"),this._instanceType=value}get kernelId(){return this._kernelId}set kernelId(value){cdk().traceProperty(this.node,"KernelId"),this._kernelId=value}get keyName(){return this._keyName}set keyName(value){cdk().traceProperty(this.node,"KeyName"),this._keyName=value}get launchConfigurationName(){return this._launchConfigurationName}set launchConfigurationName(value){cdk().traceProperty(this.node,"LaunchConfigurationName"),this._launchConfigurationName=value}get metadataOptions(){return this._metadataOptions}set metadataOptions(value){cdk().traceProperty(this.node,"MetadataOptions"),this._metadataOptions=value}get placementTenancy(){return this._placementTenancy}set placementTenancy(value){cdk().traceProperty(this.node,"PlacementTenancy"),this._placementTenancy=value}get ramDiskId(){return this._ramDiskId}set ramDiskId(value){cdk().traceProperty(this.node,"RamDiskId"),this._ramDiskId=value}get securityGroups(){return this._securityGroups}set securityGroups(value){cdk().traceProperty(this.node,"SecurityGroups"),this._securityGroups=value}get spotPrice(){return this._spotPrice}set spotPrice(value){cdk().traceProperty(this.node,"SpotPrice"),this._spotPrice=value}get userData(){return this._userData}set userData(value){cdk().traceProperty(this.node,"UserData"),this._userData=value}get cfnProperties(){return{associatePublicIpAddress:this._associatePublicIpAddress,blockDeviceMappings:this._blockDeviceMappings,classicLinkVpcId:this._classicLinkVpcId,classicLinkVpcSecurityGroups:this._classicLinkVpcSecurityGroups,ebsOptimized:this._ebsOptimized,iamInstanceProfile:this._iamInstanceProfile,imageId:this._imageId,instanceId:this._instanceId,instanceMonitoring:this._instanceMonitoring,instanceType:this._instanceType,kernelId:this._kernelId,keyName:this._keyName,launchConfigurationName:this._launchConfigurationName,metadataOptions:this._metadataOptions,placementTenancy:this._placementTenancy,ramDiskId:this._ramDiskId,securityGroups:this._securityGroups,spotPrice:this._spotPrice,userData:this._userData}}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",CfnLaunchConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLaunchConfigurationPropsToCloudFormation(props)}}exports.CfnLaunchConfiguration=CfnLaunchConfiguration;function CfnLaunchConfigurationMetadataOptionsPropertyValidator(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("httpEndpoint",cdk().validateString)(properties.httpEndpoint)),errors.collect(cdk().propertyValidator("httpPutResponseHopLimit",cdk().validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk().propertyValidator("httpTokens",cdk().validateString)(properties.httpTokens)),errors.wrap('supplied properties not correct for "MetadataOptionsProperty"')}function convertCfnLaunchConfigurationMetadataOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchConfigurationMetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk().stringToCloudFormation(properties.httpEndpoint),HttpPutResponseHopLimit:cdk().numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk().stringToCloudFormation(properties.httpTokens)}):properties}function CfnLaunchConfigurationMetadataOptionsPropertyFromCloudFormation(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("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse().FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchConfigurationBlockDevicePropertyValidator(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("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "BlockDeviceProperty"')}function convertCfnLaunchConfigurationBlockDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchConfigurationBlockDevicePropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnLaunchConfigurationBlockDevicePropertyFromCloudFormation(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("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchConfigurationBlockDeviceMappingPropertyValidator(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().requiredValidator)(properties.deviceName)),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnLaunchConfigurationBlockDevicePropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateBoolean)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function convertCfnLaunchConfigurationBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchConfigurationBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnLaunchConfigurationBlockDevicePropertyToCloudFormation(properties.ebs),NoDevice:cdk().booleanToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnLaunchConfigurationBlockDeviceMappingPropertyFromCloudFormation(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("ebs","Ebs",properties.Ebs!=null?CfnLaunchConfigurationBlockDevicePropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getBoolean(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchConfigurationPropsValidator(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("associatePublicIpAddress",cdk().validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnLaunchConfigurationBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("classicLinkVpcId",cdk().validateString)(properties.classicLinkVpcId)),errors.collect(cdk().propertyValidator("classicLinkVpcSecurityGroups",cdk().listValidator(cdk().validateString))(properties.classicLinkVpcSecurityGroups)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("iamInstanceProfile",cdk().validateString)(properties.iamInstanceProfile)),errors.collect(cdk().propertyValidator("imageId",cdk().requiredValidator)(properties.imageId)),errors.collect(cdk().propertyValidator("imageId",cdk().validateString)(properties.imageId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("instanceMonitoring",cdk().validateBoolean)(properties.instanceMonitoring)),errors.collect(cdk().propertyValidator("instanceType",cdk().requiredValidator)(properties.instanceType)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("kernelId",cdk().validateString)(properties.kernelId)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("launchConfigurationName",cdk().validateString)(properties.launchConfigurationName)),errors.collect(cdk().propertyValidator("metadataOptions",CfnLaunchConfigurationMetadataOptionsPropertyValidator)(properties.metadataOptions)),errors.collect(cdk().propertyValidator("placementTenancy",cdk().validateString)(properties.placementTenancy)),errors.collect(cdk().propertyValidator("ramDiskId",cdk().validateString)(properties.ramDiskId)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("spotPrice",cdk().validateString)(properties.spotPrice)),errors.collect(cdk().propertyValidator("userData",cdk().validateString)(properties.userData)),errors.wrap('supplied properties not correct for "CfnLaunchConfigurationProps"')}function convertCfnLaunchConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchConfigurationPropsValidator(properties).assertSuccess(),{AssociatePublicIpAddress:cdk().booleanToCloudFormation(properties.associatePublicIpAddress),BlockDeviceMappings:cdk().listMapper(convertCfnLaunchConfigurationBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),ClassicLinkVPCId:cdk().stringToCloudFormation(properties.classicLinkVpcId),ClassicLinkVPCSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.classicLinkVpcSecurityGroups),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),IamInstanceProfile:cdk().stringToCloudFormation(properties.iamInstanceProfile),ImageId:cdk().stringToCloudFormation(properties.imageId),InstanceId:cdk().stringToCloudFormation(properties.instanceId),InstanceMonitoring:cdk().booleanToCloudFormation(properties.instanceMonitoring),InstanceType:cdk().stringToCloudFormation(properties.instanceType),KernelId:cdk().stringToCloudFormation(properties.kernelId),KeyName:cdk().stringToCloudFormation(properties.keyName),LaunchConfigurationName:cdk().stringToCloudFormation(properties.launchConfigurationName),MetadataOptions:convertCfnLaunchConfigurationMetadataOptionsPropertyToCloudFormation(properties.metadataOptions),PlacementTenancy:cdk().stringToCloudFormation(properties.placementTenancy),RamDiskId:cdk().stringToCloudFormation(properties.ramDiskId),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),SpotPrice:cdk().stringToCloudFormation(properties.spotPrice),UserData:cdk().stringToCloudFormation(properties.userData)}):properties}function CfnLaunchConfigurationPropsFromCloudFormation(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("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchConfigurationBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("classicLinkVpcId","ClassicLinkVPCId",properties.ClassicLinkVPCId!=null?cfn_parse().FromCloudFormation.getString(properties.ClassicLinkVPCId):void 0),ret.addPropertyResult("classicLinkVpcSecurityGroups","ClassicLinkVPCSecurityGroups",properties.ClassicLinkVPCSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ClassicLinkVPCSecurityGroups):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?cfn_parse().FromCloudFormation.getString(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse().FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("instanceMonitoring","InstanceMonitoring",properties.InstanceMonitoring!=null?cfn_parse().FromCloudFormation.getBoolean(properties.InstanceMonitoring):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse().FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("launchConfigurationName","LaunchConfigurationName",properties.LaunchConfigurationName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchConfigurationName):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnLaunchConfigurationMetadataOptionsPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("placementTenancy","PlacementTenancy",properties.PlacementTenancy!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementTenancy):void 0),ret.addPropertyResult("ramDiskId","RamDiskId",properties.RamDiskId!=null?cfn_parse().FromCloudFormation.getString(properties.RamDiskId):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse().FromCloudFormation.getString(properties.UserData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLifecycleHook extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnLifecycleHook",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::LifecycleHook";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLifecycleHookPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLifecycleHook(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 isCfnLifecycleHook(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLifecycleHook.CFN_RESOURCE_TYPE_NAME}_autoScalingGroupName;_defaultResult;_heartbeatTimeout;_lifecycleHookName;_lifecycleTransition;_notificationMetadata;_notificationTargetArn;_roleArn;cfnPropertyNames={autoScalingGroupName:"AutoScalingGroupName",defaultResult:"DefaultResult",heartbeatTimeout:"HeartbeatTimeout",lifecycleHookName:"LifecycleHookName",lifecycleTransition:"LifecycleTransition",notificationMetadata:"NotificationMetadata",notificationTargetArn:"NotificationTargetARN",roleArn:"RoleARN"};constructor(scope,id,props){super(scope,id,{type:CfnLifecycleHook.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnLifecycleHookProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLifecycleHook),error}cdk().requireProperty(props,"autoScalingGroupName",this),cdk().requireProperty(props,"lifecycleTransition",this),this._autoScalingGroupName=cdk().getRefProperty(props.autoScalingGroupName?.autoScalingGroupRef,"autoScalingGroupName")??cdk().ensureStringOrUndefined(props.autoScalingGroupName,"autoScalingGroupName","autoscaling.IAutoScalingGroupRef | string"),this._defaultResult=props.defaultResult,this._heartbeatTimeout=props.heartbeatTimeout,this._lifecycleHookName=props.lifecycleHookName,this._lifecycleTransition=props.lifecycleTransition,this._notificationMetadata=props.notificationMetadata,this._notificationTargetArn=cdk().getRefProperty(props.notificationTargetArn?.topicRef,"topicArn")??cdk().getRefProperty(props.notificationTargetArn?.queueRef,"queueArn")??cdk().ensureStringOrUndefined(props.notificationTargetArn,"notificationTargetArn","sns.ITopicRef | sqs.IQueueRef | string"),this._roleArn=cdk().getRefProperty(props.roleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.roleArn,"roleArn","iam.IRoleRef | string")}get lifecycleHookRef(){return{autoScalingGroupName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),lifecycleHookName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get autoScalingGroupName(){return this._autoScalingGroupName}set autoScalingGroupName(value){cdk().traceProperty(this.node,"AutoScalingGroupName"),this._autoScalingGroupName=value}get defaultResult(){return this._defaultResult}set defaultResult(value){cdk().traceProperty(this.node,"DefaultResult"),this._defaultResult=value}get heartbeatTimeout(){return this._heartbeatTimeout}set heartbeatTimeout(value){cdk().traceProperty(this.node,"HeartbeatTimeout"),this._heartbeatTimeout=value}get lifecycleHookName(){return this._lifecycleHookName}set lifecycleHookName(value){cdk().traceProperty(this.node,"LifecycleHookName"),this._lifecycleHookName=value}get lifecycleTransition(){return this._lifecycleTransition}set lifecycleTransition(value){cdk().traceProperty(this.node,"LifecycleTransition"),this._lifecycleTransition=value}get notificationMetadata(){return this._notificationMetadata}set notificationMetadata(value){cdk().traceProperty(this.node,"NotificationMetadata"),this._notificationMetadata=value}get notificationTargetArn(){return this._notificationTargetArn}set notificationTargetArn(value){cdk().traceProperty(this.node,"NotificationTargetARN"),this._notificationTargetArn=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleARN"),this._roleArn=value}get cfnProperties(){return{autoScalingGroupName:this._autoScalingGroupName,defaultResult:this._defaultResult,heartbeatTimeout:this._heartbeatTimeout,lifecycleHookName:this._lifecycleHookName,lifecycleTransition:this._lifecycleTransition,notificationMetadata:this._notificationMetadata,notificationTargetArn:this._notificationTargetArn,roleArn:this._roleArn}}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",CfnLifecycleHook.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLifecycleHookPropsToCloudFormation(props)}}exports.CfnLifecycleHook=CfnLifecycleHook;function CfnLifecycleHookPropsValidator(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("autoScalingGroupName",cdk().requiredValidator)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("autoScalingGroupName",cdk().validateString)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("defaultResult",cdk().validateString)(properties.defaultResult)),errors.collect(cdk().propertyValidator("heartbeatTimeout",cdk().validateNumber)(properties.heartbeatTimeout)),errors.collect(cdk().propertyValidator("lifecycleHookName",cdk().validateString)(properties.lifecycleHookName)),errors.collect(cdk().propertyValidator("lifecycleTransition",cdk().requiredValidator)(properties.lifecycleTransition)),errors.collect(cdk().propertyValidator("lifecycleTransition",cdk().validateString)(properties.lifecycleTransition)),errors.collect(cdk().propertyValidator("notificationMetadata",cdk().validateString)(properties.notificationMetadata)),errors.collect(cdk().propertyValidator("notificationTargetArn",cdk().validateString)(properties.notificationTargetArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnLifecycleHookProps"')}function convertCfnLifecycleHookPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecycleHookPropsValidator(properties).assertSuccess(),{AutoScalingGroupName:cdk().stringToCloudFormation(properties.autoScalingGroupName),DefaultResult:cdk().stringToCloudFormation(properties.defaultResult),HeartbeatTimeout:cdk().numberToCloudFormation(properties.heartbeatTimeout),LifecycleHookName:cdk().stringToCloudFormation(properties.lifecycleHookName),LifecycleTransition:cdk().stringToCloudFormation(properties.lifecycleTransition),NotificationMetadata:cdk().stringToCloudFormation(properties.notificationMetadata),NotificationTargetARN:cdk().stringToCloudFormation(properties.notificationTargetArn),RoleARN:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnLifecycleHookPropsFromCloudFormation(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("autoScalingGroupName","AutoScalingGroupName",properties.AutoScalingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupName):void 0),ret.addPropertyResult("defaultResult","DefaultResult",properties.DefaultResult!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultResult):void 0),ret.addPropertyResult("heartbeatTimeout","HeartbeatTimeout",properties.HeartbeatTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.HeartbeatTimeout):void 0),ret.addPropertyResult("lifecycleHookName","LifecycleHookName",properties.LifecycleHookName!=null?cfn_parse().FromCloudFormation.getString(properties.LifecycleHookName):void 0),ret.addPropertyResult("lifecycleTransition","LifecycleTransition",properties.LifecycleTransition!=null?cfn_parse().FromCloudFormation.getString(properties.LifecycleTransition):void 0),ret.addPropertyResult("notificationMetadata","NotificationMetadata",properties.NotificationMetadata!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationMetadata):void 0),ret.addPropertyResult("notificationTargetArn","NotificationTargetARN",properties.NotificationTargetARN!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationTargetARN):void 0),ret.addPropertyResult("roleArn","RoleARN",properties.RoleARN!=null?cfn_parse().FromCloudFormation.getString(properties.RoleARN):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScalingPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnScalingPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::ScalingPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScalingPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnScalingPolicy(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 isCfnScalingPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME}static arnForScalingPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_autoscaling_IScalingPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForScalingPolicy),error}return resource.scalingPolicyRef.scalingPolicyArn}_adjustmentType;_autoScalingGroupName;_cooldown;_estimatedInstanceWarmup;_metricAggregationType;_minAdjustmentMagnitude;_policyType;_predictiveScalingConfiguration;_scalingAdjustment;_stepAdjustments;_targetTrackingConfiguration;cfnPropertyNames={adjustmentType:"AdjustmentType",autoScalingGroupName:"AutoScalingGroupName",cooldown:"Cooldown",estimatedInstanceWarmup:"EstimatedInstanceWarmup",metricAggregationType:"MetricAggregationType",minAdjustmentMagnitude:"MinAdjustmentMagnitude",policyType:"PolicyType",predictiveScalingConfiguration:"PredictiveScalingConfiguration",scalingAdjustment:"ScalingAdjustment",stepAdjustments:"StepAdjustments",targetTrackingConfiguration:"TargetTrackingConfiguration"};constructor(scope,id,props){super(scope,id,{type:CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnScalingPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScalingPolicy),error}cdk().requireProperty(props,"autoScalingGroupName",this),this._adjustmentType=props.adjustmentType,this._autoScalingGroupName=cdk().getRefProperty(props.autoScalingGroupName?.autoScalingGroupRef,"autoScalingGroupName")??cdk().ensureStringOrUndefined(props.autoScalingGroupName,"autoScalingGroupName","autoscaling.IAutoScalingGroupRef | string"),this._cooldown=props.cooldown,this._estimatedInstanceWarmup=props.estimatedInstanceWarmup,this._metricAggregationType=props.metricAggregationType,this._minAdjustmentMagnitude=props.minAdjustmentMagnitude,this._policyType=props.policyType,this._predictiveScalingConfiguration=props.predictiveScalingConfiguration,this._scalingAdjustment=props.scalingAdjustment,this._stepAdjustments=props.stepAdjustments,this._targetTrackingConfiguration=props.targetTrackingConfiguration}get scalingPolicyRef(){return{scalingPolicyArn:this.ref}}get adjustmentType(){return this._adjustmentType}set adjustmentType(value){cdk().traceProperty(this.node,"AdjustmentType"),this._adjustmentType=value}get autoScalingGroupName(){return this._autoScalingGroupName}set autoScalingGroupName(value){cdk().traceProperty(this.node,"AutoScalingGroupName"),this._autoScalingGroupName=value}get cooldown(){return this._cooldown}set cooldown(value){cdk().traceProperty(this.node,"Cooldown"),this._cooldown=value}get estimatedInstanceWarmup(){return this._estimatedInstanceWarmup}set estimatedInstanceWarmup(value){cdk().traceProperty(this.node,"EstimatedInstanceWarmup"),this._estimatedInstanceWarmup=value}get metricAggregationType(){return this._metricAggregationType}set metricAggregationType(value){cdk().traceProperty(this.node,"MetricAggregationType"),this._metricAggregationType=value}get minAdjustmentMagnitude(){return this._minAdjustmentMagnitude}set minAdjustmentMagnitude(value){cdk().traceProperty(this.node,"MinAdjustmentMagnitude"),this._minAdjustmentMagnitude=value}get policyType(){return this._policyType}set policyType(value){cdk().traceProperty(this.node,"PolicyType"),this._policyType=value}get predictiveScalingConfiguration(){return this._predictiveScalingConfiguration}set predictiveScalingConfiguration(value){cdk().traceProperty(this.node,"PredictiveScalingConfiguration"),this._predictiveScalingConfiguration=value}get scalingAdjustment(){return this._scalingAdjustment}set scalingAdjustment(value){cdk().traceProperty(this.node,"ScalingAdjustment"),this._scalingAdjustment=value}get stepAdjustments(){return this._stepAdjustments}set stepAdjustments(value){cdk().traceProperty(this.node,"StepAdjustments"),this._stepAdjustments=value}get targetTrackingConfiguration(){return this._targetTrackingConfiguration}set targetTrackingConfiguration(value){cdk().traceProperty(this.node,"TargetTrackingConfiguration"),this._targetTrackingConfiguration=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrPolicyName(){return cdk().Token.asString(this.getAtt("PolicyName",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{adjustmentType:this._adjustmentType,autoScalingGroupName:this._autoScalingGroupName,cooldown:this._cooldown,estimatedInstanceWarmup:this._estimatedInstanceWarmup,metricAggregationType:this._metricAggregationType,minAdjustmentMagnitude:this._minAdjustmentMagnitude,policyType:this._policyType,predictiveScalingConfiguration:this._predictiveScalingConfiguration,scalingAdjustment:this._scalingAdjustment,stepAdjustments:this._stepAdjustments,targetTrackingConfiguration:this._targetTrackingConfiguration}}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",CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnScalingPolicyPropsToCloudFormation(props)}}exports.CfnScalingPolicy=CfnScalingPolicy;function CfnScalingPolicyMetricDimensionPropertyValidator(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 "MetricDimensionProperty"')}function convertCfnScalingPolicyMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyMetricDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnScalingPolicyMetricDimensionPropertyFromCloudFormation(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 CfnScalingPolicyMetricPropertyValidator(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("dimensions",cdk().listValidator(CfnScalingPolicyMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().requiredValidator)(properties.namespace)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "MetricProperty"')}function convertCfnScalingPolicyMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyMetricPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnScalingPolicyMetricDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnScalingPolicyMetricPropertyFromCloudFormation(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("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyMetricDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyMetricStatPropertyValidator(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("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",CfnScalingPolicyMetricPropertyValidator)(properties.metric)),errors.collect(cdk().propertyValidator("stat",cdk().requiredValidator)(properties.stat)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "MetricStatProperty"')}function convertCfnScalingPolicyMetricStatPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyMetricStatPropertyValidator(properties).assertSuccess(),{Metric:convertCfnScalingPolicyMetricPropertyToCloudFormation(properties.metric),Stat:cdk().stringToCloudFormation(properties.stat),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnScalingPolicyMetricStatPropertyFromCloudFormation(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("metric","Metric",properties.Metric!=null?CfnScalingPolicyMetricPropertyFromCloudFormation(properties.Metric):void 0),ret.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyMetricDataQueryPropertyValidator(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("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("label",cdk().validateString)(properties.label)),errors.collect(cdk().propertyValidator("metricStat",CfnScalingPolicyMetricStatPropertyValidator)(properties.metricStat)),errors.collect(cdk().propertyValidator("returnData",cdk().validateBoolean)(properties.returnData)),errors.wrap('supplied properties not correct for "MetricDataQueryProperty"')}function convertCfnScalingPolicyMetricDataQueryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyMetricDataQueryPropertyValidator(properties).assertSuccess(),{Expression:cdk().stringToCloudFormation(properties.expression),Id:cdk().stringToCloudFormation(properties.id),Label:cdk().stringToCloudFormation(properties.label),MetricStat:convertCfnScalingPolicyMetricStatPropertyToCloudFormation(properties.metricStat),ReturnData:cdk().booleanToCloudFormation(properties.returnData)}):properties}function CfnScalingPolicyMetricDataQueryPropertyFromCloudFormation(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("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("label","Label",properties.Label!=null?cfn_parse().FromCloudFormation.getString(properties.Label):void 0),ret.addPropertyResult("metricStat","MetricStat",properties.MetricStat!=null?CfnScalingPolicyMetricStatPropertyFromCloudFormation(properties.MetricStat):void 0),ret.addPropertyResult("returnData","ReturnData",properties.ReturnData!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReturnData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyValidator(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("metricDataQueries",cdk().requiredValidator)(properties.metricDataQueries)),errors.collect(cdk().propertyValidator("metricDataQueries",cdk().listValidator(CfnScalingPolicyMetricDataQueryPropertyValidator))(properties.metricDataQueries)),errors.wrap('supplied properties not correct for "PredictiveScalingCustomizedLoadMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyValidator(properties).assertSuccess(),{MetricDataQueries:cdk().listMapper(convertCfnScalingPolicyMetricDataQueryPropertyToCloudFormation)(properties.metricDataQueries)}):properties}function CfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyFromCloudFormation(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("metricDataQueries","MetricDataQueries",properties.MetricDataQueries!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyMetricDataQueryPropertyFromCloudFormation)(properties.MetricDataQueries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyValidator(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("predefinedMetricType",cdk().requiredValidator)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("predefinedMetricType",cdk().validateString)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("resourceLabel",cdk().validateString)(properties.resourceLabel)),errors.wrap('supplied properties not correct for "PredictiveScalingPredefinedLoadMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyValidator(properties).assertSuccess(),{PredefinedMetricType:cdk().stringToCloudFormation(properties.predefinedMetricType),ResourceLabel:cdk().stringToCloudFormation(properties.resourceLabel)}):properties}function CfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyFromCloudFormation(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("predefinedMetricType","PredefinedMetricType",properties.PredefinedMetricType!=null?cfn_parse().FromCloudFormation.getString(properties.PredefinedMetricType):void 0),ret.addPropertyResult("resourceLabel","ResourceLabel",properties.ResourceLabel!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceLabel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyValidator(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("predefinedMetricType",cdk().requiredValidator)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("predefinedMetricType",cdk().validateString)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("resourceLabel",cdk().validateString)(properties.resourceLabel)),errors.wrap('supplied properties not correct for "PredictiveScalingPredefinedScalingMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyValidator(properties).assertSuccess(),{PredefinedMetricType:cdk().stringToCloudFormation(properties.predefinedMetricType),ResourceLabel:cdk().stringToCloudFormation(properties.resourceLabel)}):properties}function CfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyFromCloudFormation(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("predefinedMetricType","PredefinedMetricType",properties.PredefinedMetricType!=null?cfn_parse().FromCloudFormation.getString(properties.PredefinedMetricType):void 0),ret.addPropertyResult("resourceLabel","ResourceLabel",properties.ResourceLabel!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceLabel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyValidator(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("metricDataQueries",cdk().requiredValidator)(properties.metricDataQueries)),errors.collect(cdk().propertyValidator("metricDataQueries",cdk().listValidator(CfnScalingPolicyMetricDataQueryPropertyValidator))(properties.metricDataQueries)),errors.wrap('supplied properties not correct for "PredictiveScalingCustomizedCapacityMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyValidator(properties).assertSuccess(),{MetricDataQueries:cdk().listMapper(convertCfnScalingPolicyMetricDataQueryPropertyToCloudFormation)(properties.metricDataQueries)}):properties}function CfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyFromCloudFormation(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("metricDataQueries","MetricDataQueries",properties.MetricDataQueries!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyMetricDataQueryPropertyFromCloudFormation)(properties.MetricDataQueries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyValidator(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("metricDataQueries",cdk().requiredValidator)(properties.metricDataQueries)),errors.collect(cdk().propertyValidator("metricDataQueries",cdk().listValidator(CfnScalingPolicyMetricDataQueryPropertyValidator))(properties.metricDataQueries)),errors.wrap('supplied properties not correct for "PredictiveScalingCustomizedScalingMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyValidator(properties).assertSuccess(),{MetricDataQueries:cdk().listMapper(convertCfnScalingPolicyMetricDataQueryPropertyToCloudFormation)(properties.metricDataQueries)}):properties}function CfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyFromCloudFormation(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("metricDataQueries","MetricDataQueries",properties.MetricDataQueries!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyMetricDataQueryPropertyFromCloudFormation)(properties.MetricDataQueries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyValidator(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("predefinedMetricType",cdk().requiredValidator)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("predefinedMetricType",cdk().validateString)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("resourceLabel",cdk().validateString)(properties.resourceLabel)),errors.wrap('supplied properties not correct for "PredictiveScalingPredefinedMetricPairProperty"')}function convertCfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyValidator(properties).assertSuccess(),{PredefinedMetricType:cdk().stringToCloudFormation(properties.predefinedMetricType),ResourceLabel:cdk().stringToCloudFormation(properties.resourceLabel)}):properties}function CfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyFromCloudFormation(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("predefinedMetricType","PredefinedMetricType",properties.PredefinedMetricType!=null?cfn_parse().FromCloudFormation.getString(properties.PredefinedMetricType):void 0),ret.addPropertyResult("resourceLabel","ResourceLabel",properties.ResourceLabel!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceLabel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingMetricSpecificationPropertyValidator(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("customizedCapacityMetricSpecification",CfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyValidator)(properties.customizedCapacityMetricSpecification)),errors.collect(cdk().propertyValidator("customizedLoadMetricSpecification",CfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyValidator)(properties.customizedLoadMetricSpecification)),errors.collect(cdk().propertyValidator("customizedScalingMetricSpecification",CfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyValidator)(properties.customizedScalingMetricSpecification)),errors.collect(cdk().propertyValidator("predefinedLoadMetricSpecification",CfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyValidator)(properties.predefinedLoadMetricSpecification)),errors.collect(cdk().propertyValidator("predefinedMetricPairSpecification",CfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyValidator)(properties.predefinedMetricPairSpecification)),errors.collect(cdk().propertyValidator("predefinedScalingMetricSpecification",CfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyValidator)(properties.predefinedScalingMetricSpecification)),errors.collect(cdk().propertyValidator("targetValue",cdk().requiredValidator)(properties.targetValue)),errors.collect(cdk().propertyValidator("targetValue",cdk().validateNumber)(properties.targetValue)),errors.wrap('supplied properties not correct for "PredictiveScalingMetricSpecificationProperty"')}function convertCfnScalingPolicyPredictiveScalingMetricSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingMetricSpecificationPropertyValidator(properties).assertSuccess(),{CustomizedCapacityMetricSpecification:convertCfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyToCloudFormation(properties.customizedCapacityMetricSpecification),CustomizedLoadMetricSpecification:convertCfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyToCloudFormation(properties.customizedLoadMetricSpecification),CustomizedScalingMetricSpecification:convertCfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyToCloudFormation(properties.customizedScalingMetricSpecification),PredefinedLoadMetricSpecification:convertCfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyToCloudFormation(properties.predefinedLoadMetricSpecification),PredefinedMetricPairSpecification:convertCfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyToCloudFormation(properties.predefinedMetricPairSpecification),PredefinedScalingMetricSpecification:convertCfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyToCloudFormation(properties.predefinedScalingMetricSpecification),TargetValue:cdk().numberToCloudFormation(properties.targetValue)}):properties}function CfnScalingPolicyPredictiveScalingMetricSpecificationPropertyFromCloudFormation(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("customizedCapacityMetricSpecification","CustomizedCapacityMetricSpecification",properties.CustomizedCapacityMetricSpecification!=null?CfnScalingPolicyPredictiveScalingCustomizedCapacityMetricPropertyFromCloudFormation(properties.CustomizedCapacityMetricSpecification):void 0),ret.addPropertyResult("customizedLoadMetricSpecification","CustomizedLoadMetricSpecification",properties.CustomizedLoadMetricSpecification!=null?CfnScalingPolicyPredictiveScalingCustomizedLoadMetricPropertyFromCloudFormation(properties.CustomizedLoadMetricSpecification):void 0),ret.addPropertyResult("customizedScalingMetricSpecification","CustomizedScalingMetricSpecification",properties.CustomizedScalingMetricSpecification!=null?CfnScalingPolicyPredictiveScalingCustomizedScalingMetricPropertyFromCloudFormation(properties.CustomizedScalingMetricSpecification):void 0),ret.addPropertyResult("predefinedLoadMetricSpecification","PredefinedLoadMetricSpecification",properties.PredefinedLoadMetricSpecification!=null?CfnScalingPolicyPredictiveScalingPredefinedLoadMetricPropertyFromCloudFormation(properties.PredefinedLoadMetricSpecification):void 0),ret.addPropertyResult("predefinedMetricPairSpecification","PredefinedMetricPairSpecification",properties.PredefinedMetricPairSpecification!=null?CfnScalingPolicyPredictiveScalingPredefinedMetricPairPropertyFromCloudFormation(properties.PredefinedMetricPairSpecification):void 0),ret.addPropertyResult("predefinedScalingMetricSpecification","PredefinedScalingMetricSpecification",properties.PredefinedScalingMetricSpecification!=null?CfnScalingPolicyPredictiveScalingPredefinedScalingMetricPropertyFromCloudFormation(properties.PredefinedScalingMetricSpecification):void 0),ret.addPropertyResult("targetValue","TargetValue",properties.TargetValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingConfigurationPropertyValidator(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("maxCapacityBreachBehavior",cdk().validateString)(properties.maxCapacityBreachBehavior)),errors.collect(cdk().propertyValidator("maxCapacityBuffer",cdk().validateNumber)(properties.maxCapacityBuffer)),errors.collect(cdk().propertyValidator("metricSpecifications",cdk().requiredValidator)(properties.metricSpecifications)),errors.collect(cdk().propertyValidator("metricSpecifications",cdk().listValidator(CfnScalingPolicyPredictiveScalingMetricSpecificationPropertyValidator))(properties.metricSpecifications)),errors.collect(cdk().propertyValidator("mode",cdk().validateString)(properties.mode)),errors.collect(cdk().propertyValidator("schedulingBufferTime",cdk().validateNumber)(properties.schedulingBufferTime)),errors.wrap('supplied properties not correct for "PredictiveScalingConfigurationProperty"')}function convertCfnScalingPolicyPredictiveScalingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingConfigurationPropertyValidator(properties).assertSuccess(),{MaxCapacityBreachBehavior:cdk().stringToCloudFormation(properties.maxCapacityBreachBehavior),MaxCapacityBuffer:cdk().numberToCloudFormation(properties.maxCapacityBuffer),MetricSpecifications:cdk().listMapper(convertCfnScalingPolicyPredictiveScalingMetricSpecificationPropertyToCloudFormation)(properties.metricSpecifications),Mode:cdk().stringToCloudFormation(properties.mode),SchedulingBufferTime:cdk().numberToCloudFormation(properties.schedulingBufferTime)}):properties}function CfnScalingPolicyPredictiveScalingConfigurationPropertyFromCloudFormation(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("maxCapacityBreachBehavior","MaxCapacityBreachBehavior",properties.MaxCapacityBreachBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.MaxCapacityBreachBehavior):void 0),ret.addPropertyResult("maxCapacityBuffer","MaxCapacityBuffer",properties.MaxCapacityBuffer!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxCapacityBuffer):void 0),ret.addPropertyResult("metricSpecifications","MetricSpecifications",properties.MetricSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyPredictiveScalingMetricSpecificationPropertyFromCloudFormation)(properties.MetricSpecifications):void 0),ret.addPropertyResult("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):void 0),ret.addPropertyResult("schedulingBufferTime","SchedulingBufferTime",properties.SchedulingBufferTime!=null?cfn_parse().FromCloudFormation.getNumber(properties.SchedulingBufferTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyStepAdjustmentPropertyValidator(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("metricIntervalLowerBound",cdk().validateNumber)(properties.metricIntervalLowerBound)),errors.collect(cdk().propertyValidator("metricIntervalUpperBound",cdk().validateNumber)(properties.metricIntervalUpperBound)),errors.collect(cdk().propertyValidator("scalingAdjustment",cdk().requiredValidator)(properties.scalingAdjustment)),errors.collect(cdk().propertyValidator("scalingAdjustment",cdk().validateNumber)(properties.scalingAdjustment)),errors.wrap('supplied properties not correct for "StepAdjustmentProperty"')}function convertCfnScalingPolicyStepAdjustmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyStepAdjustmentPropertyValidator(properties).assertSuccess(),{MetricIntervalLowerBound:cdk().numberToCloudFormation(properties.metricIntervalLowerBound),MetricIntervalUpperBound:cdk().numberToCloudFormation(properties.metricIntervalUpperBound),ScalingAdjustment:cdk().numberToCloudFormation(properties.scalingAdjustment)}):properties}function CfnScalingPolicyStepAdjustmentPropertyFromCloudFormation(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("metricIntervalLowerBound","MetricIntervalLowerBound",properties.MetricIntervalLowerBound!=null?cfn_parse().FromCloudFormation.getNumber(properties.MetricIntervalLowerBound):void 0),ret.addPropertyResult("metricIntervalUpperBound","MetricIntervalUpperBound",properties.MetricIntervalUpperBound!=null?cfn_parse().FromCloudFormation.getNumber(properties.MetricIntervalUpperBound):void 0),ret.addPropertyResult("scalingAdjustment","ScalingAdjustment",properties.ScalingAdjustment!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScalingAdjustment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyTargetTrackingMetricStatPropertyValidator(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("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",CfnScalingPolicyMetricPropertyValidator)(properties.metric)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("stat",cdk().requiredValidator)(properties.stat)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "TargetTrackingMetricStatProperty"')}function convertCfnScalingPolicyTargetTrackingMetricStatPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingMetricStatPropertyValidator(properties).assertSuccess(),{Metric:convertCfnScalingPolicyMetricPropertyToCloudFormation(properties.metric),Period:cdk().numberToCloudFormation(properties.period),Stat:cdk().stringToCloudFormation(properties.stat),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnScalingPolicyTargetTrackingMetricStatPropertyFromCloudFormation(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("metric","Metric",properties.Metric!=null?CfnScalingPolicyMetricPropertyFromCloudFormation(properties.Metric):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyTargetTrackingMetricDataQueryPropertyValidator(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("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("label",cdk().validateString)(properties.label)),errors.collect(cdk().propertyValidator("metricStat",CfnScalingPolicyTargetTrackingMetricStatPropertyValidator)(properties.metricStat)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("returnData",cdk().validateBoolean)(properties.returnData)),errors.wrap('supplied properties not correct for "TargetTrackingMetricDataQueryProperty"')}function convertCfnScalingPolicyTargetTrackingMetricDataQueryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingMetricDataQueryPropertyValidator(properties).assertSuccess(),{Expression:cdk().stringToCloudFormation(properties.expression),Id:cdk().stringToCloudFormation(properties.id),Label:cdk().stringToCloudFormation(properties.label),MetricStat:convertCfnScalingPolicyTargetTrackingMetricStatPropertyToCloudFormation(properties.metricStat),Period:cdk().numberToCloudFormation(properties.period),ReturnData:cdk().booleanToCloudFormation(properties.returnData)}):properties}function CfnScalingPolicyTargetTrackingMetricDataQueryPropertyFromCloudFormation(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("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("label","Label",properties.Label!=null?cfn_parse().FromCloudFormation.getString(properties.Label):void 0),ret.addPropertyResult("metricStat","MetricStat",properties.MetricStat!=null?CfnScalingPolicyTargetTrackingMetricStatPropertyFromCloudFormation(properties.MetricStat):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("returnData","ReturnData",properties.ReturnData!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReturnData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyCustomizedMetricSpecificationPropertyValidator(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("dimensions",cdk().listValidator(CfnScalingPolicyMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("metrics",cdk().listValidator(CfnScalingPolicyTargetTrackingMetricDataQueryPropertyValidator))(properties.metrics)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "CustomizedMetricSpecificationProperty"')}function convertCfnScalingPolicyCustomizedMetricSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyCustomizedMetricSpecificationPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnScalingPolicyMetricDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Metrics:cdk().listMapper(convertCfnScalingPolicyTargetTrackingMetricDataQueryPropertyToCloudFormation)(properties.metrics),Namespace:cdk().stringToCloudFormation(properties.namespace),Period:cdk().numberToCloudFormation(properties.period),Statistic:cdk().stringToCloudFormation(properties.statistic),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnScalingPolicyCustomizedMetricSpecificationPropertyFromCloudFormation(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("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyMetricDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("metrics","Metrics",properties.Metrics!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyTargetTrackingMetricDataQueryPropertyFromCloudFormation)(properties.Metrics):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredefinedMetricSpecificationPropertyValidator(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("predefinedMetricType",cdk().requiredValidator)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("predefinedMetricType",cdk().validateString)(properties.predefinedMetricType)),errors.collect(cdk().propertyValidator("resourceLabel",cdk().validateString)(properties.resourceLabel)),errors.wrap('supplied properties not correct for "PredefinedMetricSpecificationProperty"')}function convertCfnScalingPolicyPredefinedMetricSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredefinedMetricSpecificationPropertyValidator(properties).assertSuccess(),{PredefinedMetricType:cdk().stringToCloudFormation(properties.predefinedMetricType),ResourceLabel:cdk().stringToCloudFormation(properties.resourceLabel)}):properties}function CfnScalingPolicyPredefinedMetricSpecificationPropertyFromCloudFormation(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("predefinedMetricType","PredefinedMetricType",properties.PredefinedMetricType!=null?cfn_parse().FromCloudFormation.getString(properties.PredefinedMetricType):void 0),ret.addPropertyResult("resourceLabel","ResourceLabel",properties.ResourceLabel!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceLabel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyTargetTrackingConfigurationPropertyValidator(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("customizedMetricSpecification",CfnScalingPolicyCustomizedMetricSpecificationPropertyValidator)(properties.customizedMetricSpecification)),errors.collect(cdk().propertyValidator("disableScaleIn",cdk().validateBoolean)(properties.disableScaleIn)),errors.collect(cdk().propertyValidator("predefinedMetricSpecification",CfnScalingPolicyPredefinedMetricSpecificationPropertyValidator)(properties.predefinedMetricSpecification)),errors.collect(cdk().propertyValidator("targetValue",cdk().requiredValidator)(properties.targetValue)),errors.collect(cdk().propertyValidator("targetValue",cdk().validateNumber)(properties.targetValue)),errors.wrap('supplied properties not correct for "TargetTrackingConfigurationProperty"')}function convertCfnScalingPolicyTargetTrackingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingConfigurationPropertyValidator(properties).assertSuccess(),{CustomizedMetricSpecification:convertCfnScalingPolicyCustomizedMetricSpecificationPropertyToCloudFormation(properties.customizedMetricSpecification),DisableScaleIn:cdk().booleanToCloudFormation(properties.disableScaleIn),PredefinedMetricSpecification:convertCfnScalingPolicyPredefinedMetricSpecificationPropertyToCloudFormation(properties.predefinedMetricSpecification),TargetValue:cdk().numberToCloudFormation(properties.targetValue)}):properties}function CfnScalingPolicyTargetTrackingConfigurationPropertyFromCloudFormation(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("customizedMetricSpecification","CustomizedMetricSpecification",properties.CustomizedMetricSpecification!=null?CfnScalingPolicyCustomizedMetricSpecificationPropertyFromCloudFormation(properties.CustomizedMetricSpecification):void 0),ret.addPropertyResult("disableScaleIn","DisableScaleIn",properties.DisableScaleIn!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableScaleIn):void 0),ret.addPropertyResult("predefinedMetricSpecification","PredefinedMetricSpecification",properties.PredefinedMetricSpecification!=null?CfnScalingPolicyPredefinedMetricSpecificationPropertyFromCloudFormation(properties.PredefinedMetricSpecification):void 0),ret.addPropertyResult("targetValue","TargetValue",properties.TargetValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("adjustmentType",cdk().validateString)(properties.adjustmentType)),errors.collect(cdk().propertyValidator("autoScalingGroupName",cdk().requiredValidator)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("autoScalingGroupName",cdk().validateString)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("cooldown",cdk().validateString)(properties.cooldown)),errors.collect(cdk().propertyValidator("estimatedInstanceWarmup",cdk().validateNumber)(properties.estimatedInstanceWarmup)),errors.collect(cdk().propertyValidator("metricAggregationType",cdk().validateString)(properties.metricAggregationType)),errors.collect(cdk().propertyValidator("minAdjustmentMagnitude",cdk().validateNumber)(properties.minAdjustmentMagnitude)),errors.collect(cdk().propertyValidator("policyType",cdk().validateString)(properties.policyType)),errors.collect(cdk().propertyValidator("predictiveScalingConfiguration",CfnScalingPolicyPredictiveScalingConfigurationPropertyValidator)(properties.predictiveScalingConfiguration)),errors.collect(cdk().propertyValidator("scalingAdjustment",cdk().validateNumber)(properties.scalingAdjustment)),errors.collect(cdk().propertyValidator("stepAdjustments",cdk().listValidator(CfnScalingPolicyStepAdjustmentPropertyValidator))(properties.stepAdjustments)),errors.collect(cdk().propertyValidator("targetTrackingConfiguration",CfnScalingPolicyTargetTrackingConfigurationPropertyValidator)(properties.targetTrackingConfiguration)),errors.wrap('supplied properties not correct for "CfnScalingPolicyProps"')}function convertCfnScalingPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPropsValidator(properties).assertSuccess(),{AdjustmentType:cdk().stringToCloudFormation(properties.adjustmentType),AutoScalingGroupName:cdk().stringToCloudFormation(properties.autoScalingGroupName),Cooldown:cdk().stringToCloudFormation(properties.cooldown),EstimatedInstanceWarmup:cdk().numberToCloudFormation(properties.estimatedInstanceWarmup),MetricAggregationType:cdk().stringToCloudFormation(properties.metricAggregationType),MinAdjustmentMagnitude:cdk().numberToCloudFormation(properties.minAdjustmentMagnitude),PolicyType:cdk().stringToCloudFormation(properties.policyType),PredictiveScalingConfiguration:convertCfnScalingPolicyPredictiveScalingConfigurationPropertyToCloudFormation(properties.predictiveScalingConfiguration),ScalingAdjustment:cdk().numberToCloudFormation(properties.scalingAdjustment),StepAdjustments:cdk().listMapper(convertCfnScalingPolicyStepAdjustmentPropertyToCloudFormation)(properties.stepAdjustments),TargetTrackingConfiguration:convertCfnScalingPolicyTargetTrackingConfigurationPropertyToCloudFormation(properties.targetTrackingConfiguration)}):properties}function CfnScalingPolicyPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("adjustmentType","AdjustmentType",properties.AdjustmentType!=null?cfn_parse().FromCloudFormation.getString(properties.AdjustmentType):void 0),ret.addPropertyResult("autoScalingGroupName","AutoScalingGroupName",properties.AutoScalingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupName):void 0),ret.addPropertyResult("cooldown","Cooldown",properties.Cooldown!=null?cfn_parse().FromCloudFormation.getString(properties.Cooldown):void 0),ret.addPropertyResult("estimatedInstanceWarmup","EstimatedInstanceWarmup",properties.EstimatedInstanceWarmup!=null?cfn_parse().FromCloudFormation.getNumber(properties.EstimatedInstanceWarmup):void 0),ret.addPropertyResult("metricAggregationType","MetricAggregationType",properties.MetricAggregationType!=null?cfn_parse().FromCloudFormation.getString(properties.MetricAggregationType):void 0),ret.addPropertyResult("minAdjustmentMagnitude","MinAdjustmentMagnitude",properties.MinAdjustmentMagnitude!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinAdjustmentMagnitude):void 0),ret.addPropertyResult("policyType","PolicyType",properties.PolicyType!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyType):void 0),ret.addPropertyResult("predictiveScalingConfiguration","PredictiveScalingConfiguration",properties.PredictiveScalingConfiguration!=null?CfnScalingPolicyPredictiveScalingConfigurationPropertyFromCloudFormation(properties.PredictiveScalingConfiguration):void 0),ret.addPropertyResult("scalingAdjustment","ScalingAdjustment",properties.ScalingAdjustment!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScalingAdjustment):void 0),ret.addPropertyResult("stepAdjustments","StepAdjustments",properties.StepAdjustments!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyStepAdjustmentPropertyFromCloudFormation)(properties.StepAdjustments):void 0),ret.addPropertyResult("targetTrackingConfiguration","TargetTrackingConfiguration",properties.TargetTrackingConfiguration!=null?CfnScalingPolicyTargetTrackingConfigurationPropertyFromCloudFormation(properties.TargetTrackingConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScheduledAction extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnScheduledAction",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::ScheduledAction";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScheduledActionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnScheduledAction(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 isCfnScheduledAction(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnScheduledAction.CFN_RESOURCE_TYPE_NAME}_autoScalingGroupName;_desiredCapacity;_endTime;_maxSize;_minSize;_recurrence;_startTime;_timeZone;cfnPropertyNames={autoScalingGroupName:"AutoScalingGroupName",desiredCapacity:"DesiredCapacity",endTime:"EndTime",maxSize:"MaxSize",minSize:"MinSize",recurrence:"Recurrence",startTime:"StartTime",timeZone:"TimeZone"};constructor(scope,id,props){super(scope,id,{type:CfnScheduledAction.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnScheduledActionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScheduledAction),error}cdk().requireProperty(props,"autoScalingGroupName",this),this._autoScalingGroupName=cdk().getRefProperty(props.autoScalingGroupName?.autoScalingGroupRef,"autoScalingGroupName")??cdk().ensureStringOrUndefined(props.autoScalingGroupName,"autoScalingGroupName","autoscaling.IAutoScalingGroupRef | string"),this._desiredCapacity=props.desiredCapacity,this._endTime=props.endTime,this._maxSize=props.maxSize,this._minSize=props.minSize,this._recurrence=props.recurrence,this._startTime=props.startTime,this._timeZone=props.timeZone}get scheduledActionRef(){return{scheduledActionName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),autoScalingGroupName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get autoScalingGroupName(){return this._autoScalingGroupName}set autoScalingGroupName(value){cdk().traceProperty(this.node,"AutoScalingGroupName"),this._autoScalingGroupName=value}get desiredCapacity(){return this._desiredCapacity}set desiredCapacity(value){cdk().traceProperty(this.node,"DesiredCapacity"),this._desiredCapacity=value}get endTime(){return this._endTime}set endTime(value){cdk().traceProperty(this.node,"EndTime"),this._endTime=value}get maxSize(){return this._maxSize}set maxSize(value){cdk().traceProperty(this.node,"MaxSize"),this._maxSize=value}get minSize(){return this._minSize}set minSize(value){cdk().traceProperty(this.node,"MinSize"),this._minSize=value}get recurrence(){return this._recurrence}set recurrence(value){cdk().traceProperty(this.node,"Recurrence"),this._recurrence=value}get startTime(){return this._startTime}set startTime(value){cdk().traceProperty(this.node,"StartTime"),this._startTime=value}get timeZone(){return this._timeZone}set timeZone(value){cdk().traceProperty(this.node,"TimeZone"),this._timeZone=value}get attrScheduledActionName(){return cdk().Token.asString(this.getAtt("ScheduledActionName",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoScalingGroupName:this._autoScalingGroupName,desiredCapacity:this._desiredCapacity,endTime:this._endTime,maxSize:this._maxSize,minSize:this._minSize,recurrence:this._recurrence,startTime:this._startTime,timeZone:this._timeZone}}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",CfnScheduledAction.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnScheduledActionPropsToCloudFormation(props)}}exports.CfnScheduledAction=CfnScheduledAction;function CfnScheduledActionPropsValidator(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("autoScalingGroupName",cdk().requiredValidator)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("autoScalingGroupName",cdk().validateString)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("desiredCapacity",cdk().validateNumber)(properties.desiredCapacity)),errors.collect(cdk().propertyValidator("endTime",cdk().validateString)(properties.endTime)),errors.collect(cdk().propertyValidator("maxSize",cdk().validateNumber)(properties.maxSize)),errors.collect(cdk().propertyValidator("minSize",cdk().validateNumber)(properties.minSize)),errors.collect(cdk().propertyValidator("recurrence",cdk().validateString)(properties.recurrence)),errors.collect(cdk().propertyValidator("startTime",cdk().validateString)(properties.startTime)),errors.collect(cdk().propertyValidator("timeZone",cdk().validateString)(properties.timeZone)),errors.wrap('supplied properties not correct for "CfnScheduledActionProps"')}function convertCfnScheduledActionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScheduledActionPropsValidator(properties).assertSuccess(),{AutoScalingGroupName:cdk().stringToCloudFormation(properties.autoScalingGroupName),DesiredCapacity:cdk().numberToCloudFormation(properties.desiredCapacity),EndTime:cdk().stringToCloudFormation(properties.endTime),MaxSize:cdk().numberToCloudFormation(properties.maxSize),MinSize:cdk().numberToCloudFormation(properties.minSize),Recurrence:cdk().stringToCloudFormation(properties.recurrence),StartTime:cdk().stringToCloudFormation(properties.startTime),TimeZone:cdk().stringToCloudFormation(properties.timeZone)}):properties}function CfnScheduledActionPropsFromCloudFormation(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("autoScalingGroupName","AutoScalingGroupName",properties.AutoScalingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupName):void 0),ret.addPropertyResult("desiredCapacity","DesiredCapacity",properties.DesiredCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.DesiredCapacity):void 0),ret.addPropertyResult("endTime","EndTime",properties.EndTime!=null?cfn_parse().FromCloudFormation.getString(properties.EndTime):void 0),ret.addPropertyResult("maxSize","MaxSize",properties.MaxSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSize):void 0),ret.addPropertyResult("minSize","MinSize",properties.MinSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinSize):void 0),ret.addPropertyResult("recurrence","Recurrence",properties.Recurrence!=null?cfn_parse().FromCloudFormation.getString(properties.Recurrence):void 0),ret.addPropertyResult("startTime","StartTime",properties.StartTime!=null?cfn_parse().FromCloudFormation.getString(properties.StartTime):void 0),ret.addPropertyResult("timeZone","TimeZone",properties.TimeZone!=null?cfn_parse().FromCloudFormation.getString(properties.TimeZone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWarmPool extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_autoscaling.CfnWarmPool",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::AutoScaling::WarmPool";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWarmPoolPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWarmPool(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 isCfnWarmPool(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWarmPool.CFN_RESOURCE_TYPE_NAME}_autoScalingGroupName;_instanceReusePolicy;_maxGroupPreparedCapacity;_minSize;_poolState;cfnPropertyNames={autoScalingGroupName:"AutoScalingGroupName",instanceReusePolicy:"InstanceReusePolicy",maxGroupPreparedCapacity:"MaxGroupPreparedCapacity",minSize:"MinSize",poolState:"PoolState"};constructor(scope,id,props){super(scope,id,{type:CfnWarmPool.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_autoscaling_CfnWarmPoolProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWarmPool),error}cdk().requireProperty(props,"autoScalingGroupName",this),this._autoScalingGroupName=cdk().getRefProperty(props.autoScalingGroupName?.autoScalingGroupRef,"autoScalingGroupName")??cdk().ensureStringOrUndefined(props.autoScalingGroupName,"autoScalingGroupName","autoscaling.IAutoScalingGroupRef | string"),this._instanceReusePolicy=props.instanceReusePolicy,this._maxGroupPreparedCapacity=props.maxGroupPreparedCapacity,this._minSize=props.minSize,this._poolState=props.poolState}get warmPoolRef(){return{autoScalingGroupName:this.ref}}get autoScalingGroupName(){return this._autoScalingGroupName}set autoScalingGroupName(value){cdk().traceProperty(this.node,"AutoScalingGroupName"),this._autoScalingGroupName=value}get instanceReusePolicy(){return this._instanceReusePolicy}set instanceReusePolicy(value){cdk().traceProperty(this.node,"InstanceReusePolicy"),this._instanceReusePolicy=value}get maxGroupPreparedCapacity(){return this._maxGroupPreparedCapacity}set maxGroupPreparedCapacity(value){cdk().traceProperty(this.node,"MaxGroupPreparedCapacity"),this._maxGroupPreparedCapacity=value}get minSize(){return this._minSize}set minSize(value){cdk().traceProperty(this.node,"MinSize"),this._minSize=value}get poolState(){return this._poolState}set poolState(value){cdk().traceProperty(this.node,"PoolState"),this._poolState=value}get cfnProperties(){return{autoScalingGroupName:this._autoScalingGroupName,instanceReusePolicy:this._instanceReusePolicy,maxGroupPreparedCapacity:this._maxGroupPreparedCapacity,minSize:this._minSize,poolState:this._poolState}}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",CfnWarmPool.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWarmPoolPropsToCloudFormation(props)}}exports.CfnWarmPool=CfnWarmPool;function CfnWarmPoolInstanceReusePolicyPropertyValidator(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("reuseOnScaleIn",cdk().validateBoolean)(properties.reuseOnScaleIn)),errors.wrap('supplied properties not correct for "InstanceReusePolicyProperty"')}function convertCfnWarmPoolInstanceReusePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWarmPoolInstanceReusePolicyPropertyValidator(properties).assertSuccess(),{ReuseOnScaleIn:cdk().booleanToCloudFormation(properties.reuseOnScaleIn)}):properties}function CfnWarmPoolInstanceReusePolicyPropertyFromCloudFormation(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("reuseOnScaleIn","ReuseOnScaleIn",properties.ReuseOnScaleIn!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReuseOnScaleIn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWarmPoolPropsValidator(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("autoScalingGroupName",cdk().requiredValidator)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("autoScalingGroupName",cdk().validateString)(properties.autoScalingGroupName)),errors.collect(cdk().propertyValidator("instanceReusePolicy",CfnWarmPoolInstanceReusePolicyPropertyValidator)(properties.instanceReusePolicy)),errors.collect(cdk().propertyValidator("maxGroupPreparedCapacity",cdk().validateNumber)(properties.maxGroupPreparedCapacity)),errors.collect(cdk().propertyValidator("minSize",cdk().validateNumber)(properties.minSize)),errors.collect(cdk().propertyValidator("poolState",cdk().validateString)(properties.poolState)),errors.wrap('supplied properties not correct for "CfnWarmPoolProps"')}function convertCfnWarmPoolPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWarmPoolPropsValidator(properties).assertSuccess(),{AutoScalingGroupName:cdk().stringToCloudFormation(properties.autoScalingGroupName),InstanceReusePolicy:convertCfnWarmPoolInstanceReusePolicyPropertyToCloudFormation(properties.instanceReusePolicy),MaxGroupPreparedCapacity:cdk().numberToCloudFormation(properties.maxGroupPreparedCapacity),MinSize:cdk().numberToCloudFormation(properties.minSize),PoolState:cdk().stringToCloudFormation(properties.poolState)}):properties}function CfnWarmPoolPropsFromCloudFormation(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("autoScalingGroupName","AutoScalingGroupName",properties.AutoScalingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.AutoScalingGroupName):void 0),ret.addPropertyResult("instanceReusePolicy","InstanceReusePolicy",properties.InstanceReusePolicy!=null?CfnWarmPoolInstanceReusePolicyPropertyFromCloudFormation(properties.InstanceReusePolicy):void 0),ret.addPropertyResult("maxGroupPreparedCapacity","MaxGroupPreparedCapacity",properties.MaxGroupPreparedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxGroupPreparedCapacity):void 0),ret.addPropertyResult("minSize","MinSize",properties.MinSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinSize):void 0),ret.addPropertyResult("poolState","PoolState",properties.PoolState!=null?cfn_parse().FromCloudFormation.getString(properties.PoolState):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}