aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 78.4 kB
JavaScript
"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnScalingPolicy=exports.CfnScalableTarget=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnScalableTarget extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScalableTargetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnScalableTarget(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}constructor(scope,id,props){super(scope,id,{type:CfnScalableTarget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_applicationautoscaling_CfnScalableTargetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScalableTarget),error}cdk().requireProperty(props,"maxCapacity",this),cdk().requireProperty(props,"minCapacity",this),cdk().requireProperty(props,"resourceId",this),cdk().requireProperty(props,"scalableDimension",this),cdk().requireProperty(props,"serviceNamespace",this),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.maxCapacity=props.maxCapacity,this.minCapacity=props.minCapacity,this.resourceId=props.resourceId,this.roleArn=props.roleArn,this.scalableDimension=props.scalableDimension,this.scheduledActions=props.scheduledActions,this.serviceNamespace=props.serviceNamespace,this.suspendedState=props.suspendedState}get cfnProperties(){return{maxCapacity:this.maxCapacity,minCapacity:this.minCapacity,resourceId:this.resourceId,roleArn:this.roleArn,scalableDimension:this.scalableDimension,scheduledActions:this.scheduledActions,serviceNamespace:this.serviceNamespace,suspendedState:this.suspendedState}}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",CfnScalableTarget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnScalableTargetPropsToCloudFormation(props)}}exports.CfnScalableTarget=CfnScalableTarget,_a=JSII_RTTI_SYMBOL_1,CfnScalableTarget[_a]={fqn:"aws-cdk-lib.aws_applicationautoscaling.CfnScalableTarget",version:"2.185.0"},CfnScalableTarget.CFN_RESOURCE_TYPE_NAME="AWS::ApplicationAutoScaling::ScalableTarget";function CfnScalableTargetScalableTargetActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxCapacity",cdk().validateNumber)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().validateNumber)(properties.minCapacity)),errors.wrap('supplied properties not correct for "ScalableTargetActionProperty"')}function convertCfnScalableTargetScalableTargetActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalableTargetScalableTargetActionPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk().numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk().numberToCloudFormation(properties.minCapacity)}):properties}function CfnScalableTargetScalableTargetActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",properties.MaxCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxCapacity):void 0),ret.addPropertyResult("minCapacity","MinCapacity",properties.MinCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalableTargetScheduledActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("endTime",cdk().validateDate)(properties.endTime)),errors.collect(cdk().propertyValidator("scalableTargetAction",CfnScalableTargetScalableTargetActionPropertyValidator)(properties.scalableTargetAction)),errors.collect(cdk().propertyValidator("schedule",cdk().requiredValidator)(properties.schedule)),errors.collect(cdk().propertyValidator("schedule",cdk().validateString)(properties.schedule)),errors.collect(cdk().propertyValidator("scheduledActionName",cdk().requiredValidator)(properties.scheduledActionName)),errors.collect(cdk().propertyValidator("scheduledActionName",cdk().validateString)(properties.scheduledActionName)),errors.collect(cdk().propertyValidator("startTime",cdk().validateDate)(properties.startTime)),errors.collect(cdk().propertyValidator("timezone",cdk().validateString)(properties.timezone)),errors.wrap('supplied properties not correct for "ScheduledActionProperty"')}function convertCfnScalableTargetScheduledActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalableTargetScheduledActionPropertyValidator(properties).assertSuccess(),{EndTime:cdk().dateToCloudFormation(properties.endTime),ScalableTargetAction:convertCfnScalableTargetScalableTargetActionPropertyToCloudFormation(properties.scalableTargetAction),Schedule:cdk().stringToCloudFormation(properties.schedule),ScheduledActionName:cdk().stringToCloudFormation(properties.scheduledActionName),StartTime:cdk().dateToCloudFormation(properties.startTime),Timezone:cdk().stringToCloudFormation(properties.timezone)}):properties}function CfnScalableTargetScheduledActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("endTime","EndTime",properties.EndTime!=null?cfn_parse().FromCloudFormation.getDate(properties.EndTime):void 0),ret.addPropertyResult("scalableTargetAction","ScalableTargetAction",properties.ScalableTargetAction!=null?CfnScalableTargetScalableTargetActionPropertyFromCloudFormation(properties.ScalableTargetAction):void 0),ret.addPropertyResult("schedule","Schedule",properties.Schedule!=null?cfn_parse().FromCloudFormation.getString(properties.Schedule):void 0),ret.addPropertyResult("scheduledActionName","ScheduledActionName",properties.ScheduledActionName!=null?cfn_parse().FromCloudFormation.getString(properties.ScheduledActionName):void 0),ret.addPropertyResult("startTime","StartTime",properties.StartTime!=null?cfn_parse().FromCloudFormation.getDate(properties.StartTime):void 0),ret.addPropertyResult("timezone","Timezone",properties.Timezone!=null?cfn_parse().FromCloudFormation.getString(properties.Timezone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalableTargetSuspendedStatePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dynamicScalingInSuspended",cdk().validateBoolean)(properties.dynamicScalingInSuspended)),errors.collect(cdk().propertyValidator("dynamicScalingOutSuspended",cdk().validateBoolean)(properties.dynamicScalingOutSuspended)),errors.collect(cdk().propertyValidator("scheduledScalingSuspended",cdk().validateBoolean)(properties.scheduledScalingSuspended)),errors.wrap('supplied properties not correct for "SuspendedStateProperty"')}function convertCfnScalableTargetSuspendedStatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalableTargetSuspendedStatePropertyValidator(properties).assertSuccess(),{DynamicScalingInSuspended:cdk().booleanToCloudFormation(properties.dynamicScalingInSuspended),DynamicScalingOutSuspended:cdk().booleanToCloudFormation(properties.dynamicScalingOutSuspended),ScheduledScalingSuspended:cdk().booleanToCloudFormation(properties.scheduledScalingSuspended)}):properties}function CfnScalableTargetSuspendedStatePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dynamicScalingInSuspended","DynamicScalingInSuspended",properties.DynamicScalingInSuspended!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DynamicScalingInSuspended):void 0),ret.addPropertyResult("dynamicScalingOutSuspended","DynamicScalingOutSuspended",properties.DynamicScalingOutSuspended!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DynamicScalingOutSuspended):void 0),ret.addPropertyResult("scheduledScalingSuspended","ScheduledScalingSuspended",properties.ScheduledScalingSuspended!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ScheduledScalingSuspended):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalableTargetPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxCapacity",cdk().requiredValidator)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("maxCapacity",cdk().validateNumber)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().requiredValidator)(properties.minCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().validateNumber)(properties.minCapacity)),errors.collect(cdk().propertyValidator("resourceId",cdk().requiredValidator)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("scalableDimension",cdk().requiredValidator)(properties.scalableDimension)),errors.collect(cdk().propertyValidator("scalableDimension",cdk().validateString)(properties.scalableDimension)),errors.collect(cdk().propertyValidator("scheduledActions",cdk().listValidator(CfnScalableTargetScheduledActionPropertyValidator))(properties.scheduledActions)),errors.collect(cdk().propertyValidator("serviceNamespace",cdk().requiredValidator)(properties.serviceNamespace)),errors.collect(cdk().propertyValidator("serviceNamespace",cdk().validateString)(properties.serviceNamespace)),errors.collect(cdk().propertyValidator("suspendedState",CfnScalableTargetSuspendedStatePropertyValidator)(properties.suspendedState)),errors.wrap('supplied properties not correct for "CfnScalableTargetProps"')}function convertCfnScalableTargetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalableTargetPropsValidator(properties).assertSuccess(),{MaxCapacity:cdk().numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk().numberToCloudFormation(properties.minCapacity),ResourceId:cdk().stringToCloudFormation(properties.resourceId),RoleARN:cdk().stringToCloudFormation(properties.roleArn),ScalableDimension:cdk().stringToCloudFormation(properties.scalableDimension),ScheduledActions:cdk().listMapper(convertCfnScalableTargetScheduledActionPropertyToCloudFormation)(properties.scheduledActions),ServiceNamespace:cdk().stringToCloudFormation(properties.serviceNamespace),SuspendedState:convertCfnScalableTargetSuspendedStatePropertyToCloudFormation(properties.suspendedState)}):properties}function CfnScalableTargetPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",properties.MaxCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxCapacity):void 0),ret.addPropertyResult("minCapacity","MinCapacity",properties.MinCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinCapacity):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("roleArn","RoleARN",properties.RoleARN!=null?cfn_parse().FromCloudFormation.getString(properties.RoleARN):void 0),ret.addPropertyResult("scalableDimension","ScalableDimension",properties.ScalableDimension!=null?cfn_parse().FromCloudFormation.getString(properties.ScalableDimension):void 0),ret.addPropertyResult("scheduledActions","ScheduledActions",properties.ScheduledActions!=null?cfn_parse().FromCloudFormation.getArray(CfnScalableTargetScheduledActionPropertyFromCloudFormation)(properties.ScheduledActions):void 0),ret.addPropertyResult("serviceNamespace","ServiceNamespace",properties.ServiceNamespace!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceNamespace):void 0),ret.addPropertyResult("suspendedState","SuspendedState",properties.SuspendedState!=null?CfnScalableTargetSuspendedStatePropertyFromCloudFormation(properties.SuspendedState):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScalingPolicy extends cdk().CfnResource{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("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}constructor(scope,id,props){super(scope,id,{type:CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_applicationautoscaling_CfnScalingPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScalingPolicy),error}cdk().requireProperty(props,"policyName",this),cdk().requireProperty(props,"policyType",this),this.attrArn=cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING)),this.policyName=props.policyName,this.policyType=props.policyType,this.predictiveScalingPolicyConfiguration=props.predictiveScalingPolicyConfiguration,this.resourceId=props.resourceId,this.scalableDimension=props.scalableDimension,this.scalingTargetId=props.scalingTargetId,this.serviceNamespace=props.serviceNamespace,this.stepScalingPolicyConfiguration=props.stepScalingPolicyConfiguration,this.targetTrackingScalingPolicyConfiguration=props.targetTrackingScalingPolicyConfiguration}get cfnProperties(){return{policyName:this.policyName,policyType:this.policyType,predictiveScalingPolicyConfiguration:this.predictiveScalingPolicyConfiguration,resourceId:this.resourceId,scalableDimension:this.scalableDimension,scalingTargetId:this.scalingTargetId,serviceNamespace:this.serviceNamespace,stepScalingPolicyConfiguration:this.stepScalingPolicyConfiguration,targetTrackingScalingPolicyConfiguration:this.targetTrackingScalingPolicyConfiguration}}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:props",this.cfnProperties)}renderProperties(props){return convertCfnScalingPolicyPropsToCloudFormation(props)}}exports.CfnScalingPolicy=CfnScalingPolicy,_b=JSII_RTTI_SYMBOL_1,CfnScalingPolicy[_b]={fqn:"aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy",version:"2.185.0"},CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME="AWS::ApplicationAutoScaling::ScalingPolicy";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 CfnScalingPolicyStepScalingPolicyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("adjustmentType",cdk().validateString)(properties.adjustmentType)),errors.collect(cdk().propertyValidator("cooldown",cdk().validateNumber)(properties.cooldown)),errors.collect(cdk().propertyValidator("metricAggregationType",cdk().validateString)(properties.metricAggregationType)),errors.collect(cdk().propertyValidator("minAdjustmentMagnitude",cdk().validateNumber)(properties.minAdjustmentMagnitude)),errors.collect(cdk().propertyValidator("stepAdjustments",cdk().listValidator(CfnScalingPolicyStepAdjustmentPropertyValidator))(properties.stepAdjustments)),errors.wrap('supplied properties not correct for "StepScalingPolicyConfigurationProperty"')}function convertCfnScalingPolicyStepScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyStepScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{AdjustmentType:cdk().stringToCloudFormation(properties.adjustmentType),Cooldown:cdk().numberToCloudFormation(properties.cooldown),MetricAggregationType:cdk().stringToCloudFormation(properties.metricAggregationType),MinAdjustmentMagnitude:cdk().numberToCloudFormation(properties.minAdjustmentMagnitude),StepAdjustments:cdk().listMapper(convertCfnScalingPolicyStepAdjustmentPropertyToCloudFormation)(properties.stepAdjustments)}):properties}function CfnScalingPolicyStepScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("adjustmentType","AdjustmentType",properties.AdjustmentType!=null?cfn_parse().FromCloudFormation.getString(properties.AdjustmentType):void 0),ret.addPropertyResult("cooldown","Cooldown",properties.Cooldown!=null?cfn_parse().FromCloudFormation.getNumber(properties.Cooldown):void 0),ret.addPropertyResult("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("stepAdjustments","StepAdjustments",properties.StepAdjustments!=null?cfn_parse().FromCloudFormation.getArray(CfnScalingPolicyStepAdjustmentPropertyFromCloudFormation)(properties.StepAdjustments):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}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 CfnScalingPolicyTargetTrackingMetricDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "TargetTrackingMetricDimensionProperty"')}function convertCfnScalingPolicyTargetTrackingMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingMetricDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnScalingPolicyTargetTrackingMetricDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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 CfnScalingPolicyTargetTrackingMetricPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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(CfnScalingPolicyTargetTrackingMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "TargetTrackingMetricProperty"')}function convertCfnScalingPolicyTargetTrackingMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingMetricPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnScalingPolicyTargetTrackingMetricDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnScalingPolicyTargetTrackingMetricPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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(CfnScalingPolicyTargetTrackingMetricDimensionPropertyFromCloudFormation)(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 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",CfnScalingPolicyTargetTrackingMetricPropertyValidator)(properties.metric)),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:convertCfnScalingPolicyTargetTrackingMetricPropertyToCloudFormation(properties.metric),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?CfnScalingPolicyTargetTrackingMetricPropertyFromCloudFormation(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 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().validateString)(properties.id)),errors.collect(cdk().propertyValidator("label",cdk().validateString)(properties.label)),errors.collect(cdk().propertyValidator("metricStat",CfnScalingPolicyTargetTrackingMetricStatPropertyValidator)(properties.metricStat)),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),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("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("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),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("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 CfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("scaleInCooldown",cdk().validateNumber)(properties.scaleInCooldown)),errors.collect(cdk().propertyValidator("scaleOutCooldown",cdk().validateNumber)(properties.scaleOutCooldown)),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 "TargetTrackingScalingPolicyConfigurationProperty"')}function convertCfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{CustomizedMetricSpecification:convertCfnScalingPolicyCustomizedMetricSpecificationPropertyToCloudFormation(properties.customizedMetricSpecification),DisableScaleIn:cdk().booleanToCloudFormation(properties.disableScaleIn),PredefinedMetricSpecification:convertCfnScalingPolicyPredefinedMetricSpecificationPropertyToCloudFormation(properties.predefinedMetricSpecification),ScaleInCooldown:cdk().numberToCloudFormation(properties.scaleInCooldown),ScaleOutCooldown:cdk().numberToCloudFormation(properties.scaleOutCooldown),TargetValue:cdk().numberToCloudFormation(properties.targetValue)}):properties}function CfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("scaleInCooldown","ScaleInCooldown",properties.ScaleInCooldown!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScaleInCooldown):void 0),ret.addPropertyResult("scaleOutCooldown","ScaleOutCooldown",properties.ScaleOutCooldown!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScaleOutCooldown):void 0),ret.addPropertyResult("targetValue","TargetValue",properties.TargetValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicyPredictiveScalingMetricDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "PredictiveScalingMetricDimensionProperty"')}function convertCfnScalingPolicyPredictiveScalingMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingMetricDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnScalingPolicyPredictiveScalingMetricDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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 CfnScalingPolicyPredictiveScalingMetricPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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(CfnScalingPolicyPredictiveScalingMetricDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "PredictiveScalingMetricProperty"')}function convertCfnScalingPolicyPredictiveScalingMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingMetricPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnScalingPolicyPredictiveScalingMetricDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnScalingPolicyPredictiveScalingMetricPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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(CfnScalingPolicyPredictiveScalingMetricDimensionPropertyFromCloudFormation)(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 CfnScalingPolicyPredictiveScalingMetricStatPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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",CfnScalingPolicyPredictiveScalingMetricPropertyValidator)(properties.metric)),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 "PredictiveScalingMetricStatProperty"')}function convertCfnScalingPolicyPredictiveScalingMetricStatPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScalingPolicyPredictiveScalingMetricStatPropertyValidator(properties).assertSuccess(),{Metric:convertCfnScalingPolicyPredictiveScalingMetricPropertyToCloudFormation(properties.metric),Stat:cdk().stringToCloudFormation(properties.stat),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnScalingPolicyPredictiveScalingMetricStatPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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?CfnScalingPolicyPredictiveScalingMetricPropertyFromCloudFormation(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 CfnScalingPolicyPredictiveScalingMetricDataQueryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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