UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 35.8 kB
"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnScalingPolicy=exports.CfnScalableTarget=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnScalableTargetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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.requiredValidator)(properties.roleArn)),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(CfnScalableTarget_ScheduledActionPropertyValidator))(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",CfnScalableTarget_SuspendedStatePropertyValidator)(properties.suspendedState)),errors.wrap('supplied properties not correct for "CfnScalableTargetProps"')}function cfnScalableTargetPropsToCloudFormation(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),ServiceNamespace:cdk.stringToCloudFormation(properties.serviceNamespace),ScheduledActions:cdk.listMapper(cfnScalableTargetScheduledActionPropertyToCloudFormation)(properties.scheduledActions),SuspendedState:cfnScalableTargetSuspendedStatePropertyToCloudFormation(properties.suspendedState)}):properties}function CfnScalableTargetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MaxCapacity)),ret.addPropertyResult("minCapacity","MinCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MinCapacity)),ret.addPropertyResult("resourceId","ResourceId",cfn_parse.FromCloudFormation.getString(properties.ResourceId)),ret.addPropertyResult("roleArn","RoleARN",cfn_parse.FromCloudFormation.getString(properties.RoleARN)),ret.addPropertyResult("scalableDimension","ScalableDimension",cfn_parse.FromCloudFormation.getString(properties.ScalableDimension)),ret.addPropertyResult("serviceNamespace","ServiceNamespace",cfn_parse.FromCloudFormation.getString(properties.ServiceNamespace)),ret.addPropertyResult("scheduledActions","ScheduledActions",properties.ScheduledActions!=null?cfn_parse.FromCloudFormation.getArray(CfnScalableTargetScheduledActionPropertyFromCloudFormation)(properties.ScheduledActions):void 0),ret.addPropertyResult("suspendedState","SuspendedState",properties.SuspendedState!=null?CfnScalableTargetSuspendedStatePropertyFromCloudFormation(properties.SuspendedState):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScalableTarget extends cdk.CfnResource{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,"roleArn",this),cdk.requireProperty(props,"scalableDimension",this),cdk.requireProperty(props,"serviceNamespace",this),this.maxCapacity=props.maxCapacity,this.minCapacity=props.minCapacity,this.resourceId=props.resourceId,this.roleArn=props.roleArn,this.scalableDimension=props.scalableDimension,this.serviceNamespace=props.serviceNamespace,this.scheduledActions=props.scheduledActions,this.suspendedState=props.suspendedState}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScalableTargetPropsFromCloudFormation(resourceProperties),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}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)}get cfnProperties(){return{maxCapacity:this.maxCapacity,minCapacity:this.minCapacity,resourceId:this.resourceId,roleArn:this.roleArn,scalableDimension:this.scalableDimension,serviceNamespace:this.serviceNamespace,scheduledActions:this.scheduledActions,suspendedState:this.suspendedState}}renderProperties(props){return cfnScalableTargetPropsToCloudFormation(props)}}exports.CfnScalableTarget=CfnScalableTarget,_a=JSII_RTTI_SYMBOL_1,CfnScalableTarget[_a]={fqn:"aws-cdk-lib.aws_applicationautoscaling.CfnScalableTarget",version:"2.70.0"},CfnScalableTarget.CFN_RESOURCE_TYPE_NAME="AWS::ApplicationAutoScaling::ScalableTarget";function CfnScalableTarget_ScalableTargetActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnScalableTargetScalableTargetActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalableTarget_ScalableTargetActionPropertyValidator(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??{},typeof properties!="object")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 CfnScalableTarget_ScheduledActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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",CfnScalableTarget_ScalableTargetActionPropertyValidator)(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 cfnScalableTargetScheduledActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalableTarget_ScheduledActionPropertyValidator(properties).assertSuccess(),{EndTime:cdk.dateToCloudFormation(properties.endTime),ScalableTargetAction:cfnScalableTargetScalableTargetActionPropertyToCloudFormation(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getString(properties.Schedule)),ret.addPropertyResult("scheduledActionName","ScheduledActionName",cfn_parse.FromCloudFormation.getString(properties.ScheduledActionName)),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 CfnScalableTarget_SuspendedStatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnScalableTargetSuspendedStatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalableTarget_SuspendedStatePropertyValidator(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??{},typeof properties!="object")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 CfnScalingPolicyPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyName",cdk.requiredValidator)(properties.policyName)),errors.collect(cdk.propertyValidator("policyName",cdk.validateString)(properties.policyName)),errors.collect(cdk.propertyValidator("policyType",cdk.requiredValidator)(properties.policyType)),errors.collect(cdk.propertyValidator("policyType",cdk.validateString)(properties.policyType)),errors.collect(cdk.propertyValidator("resourceId",cdk.validateString)(properties.resourceId)),errors.collect(cdk.propertyValidator("scalableDimension",cdk.validateString)(properties.scalableDimension)),errors.collect(cdk.propertyValidator("scalingTargetId",cdk.validateString)(properties.scalingTargetId)),errors.collect(cdk.propertyValidator("serviceNamespace",cdk.validateString)(properties.serviceNamespace)),errors.collect(cdk.propertyValidator("stepScalingPolicyConfiguration",CfnScalingPolicy_StepScalingPolicyConfigurationPropertyValidator)(properties.stepScalingPolicyConfiguration)),errors.collect(cdk.propertyValidator("targetTrackingScalingPolicyConfiguration",CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationPropertyValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "CfnScalingPolicyProps"')}function cfnScalingPolicyPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicyPropsValidator(properties).assertSuccess(),{PolicyName:cdk.stringToCloudFormation(properties.policyName),PolicyType:cdk.stringToCloudFormation(properties.policyType),ResourceId:cdk.stringToCloudFormation(properties.resourceId),ScalableDimension:cdk.stringToCloudFormation(properties.scalableDimension),ScalingTargetId:cdk.stringToCloudFormation(properties.scalingTargetId),ServiceNamespace:cdk.stringToCloudFormation(properties.serviceNamespace),StepScalingPolicyConfiguration:cfnScalingPolicyStepScalingPolicyConfigurationPropertyToCloudFormation(properties.stepScalingPolicyConfiguration),TargetTrackingScalingPolicyConfiguration:cfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties.targetTrackingScalingPolicyConfiguration)}):properties}function CfnScalingPolicyPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("policyName","PolicyName",cfn_parse.FromCloudFormation.getString(properties.PolicyName)),ret.addPropertyResult("policyType","PolicyType",cfn_parse.FromCloudFormation.getString(properties.PolicyType)),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("scalableDimension","ScalableDimension",properties.ScalableDimension!=null?cfn_parse.FromCloudFormation.getString(properties.ScalableDimension):void 0),ret.addPropertyResult("scalingTargetId","ScalingTargetId",properties.ScalingTargetId!=null?cfn_parse.FromCloudFormation.getString(properties.ScalingTargetId):void 0),ret.addPropertyResult("serviceNamespace","ServiceNamespace",properties.ServiceNamespace!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceNamespace):void 0),ret.addPropertyResult("stepScalingPolicyConfiguration","StepScalingPolicyConfiguration",properties.StepScalingPolicyConfiguration!=null?CfnScalingPolicyStepScalingPolicyConfigurationPropertyFromCloudFormation(properties.StepScalingPolicyConfiguration):void 0),ret.addPropertyResult("targetTrackingScalingPolicyConfiguration","TargetTrackingScalingPolicyConfiguration",properties.TargetTrackingScalingPolicyConfiguration!=null?CfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties.TargetTrackingScalingPolicyConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScalingPolicy extends cdk.CfnResource{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.policyName=props.policyName,this.policyType=props.policyType,this.resourceId=props.resourceId,this.scalableDimension=props.scalableDimension,this.scalingTargetId=props.scalingTargetId,this.serviceNamespace=props.serviceNamespace,this.stepScalingPolicyConfiguration=props.stepScalingPolicyConfiguration,this.targetTrackingScalingPolicyConfiguration=props.targetTrackingScalingPolicyConfiguration}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScalingPolicyPropsFromCloudFormation(resourceProperties),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}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)}get cfnProperties(){return{policyName:this.policyName,policyType:this.policyType,resourceId:this.resourceId,scalableDimension:this.scalableDimension,scalingTargetId:this.scalingTargetId,serviceNamespace:this.serviceNamespace,stepScalingPolicyConfiguration:this.stepScalingPolicyConfiguration,targetTrackingScalingPolicyConfiguration:this.targetTrackingScalingPolicyConfiguration}}renderProperties(props){return cfnScalingPolicyPropsToCloudFormation(props)}}exports.CfnScalingPolicy=CfnScalingPolicy,_b=JSII_RTTI_SYMBOL_1,CfnScalingPolicy[_b]={fqn:"aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy",version:"2.70.0"},CfnScalingPolicy.CFN_RESOURCE_TYPE_NAME="AWS::ApplicationAutoScaling::ScalingPolicy";function CfnScalingPolicy_CustomizedMetricSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("dimensions",cdk.listValidator(CfnScalingPolicy_MetricDimensionPropertyValidator))(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.collect(cdk.propertyValidator("statistic",cdk.requiredValidator)(properties.statistic)),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 cfnScalingPolicyCustomizedMetricSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_CustomizedMetricSpecificationPropertyValidator(properties).assertSuccess(),{Dimensions:cdk.listMapper(cfnScalingPolicyMetricDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk.stringToCloudFormation(properties.metricName),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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getString(properties.MetricName)),ret.addPropertyResult("namespace","Namespace",cfn_parse.FromCloudFormation.getString(properties.Namespace)),ret.addPropertyResult("statistic","Statistic",cfn_parse.FromCloudFormation.getString(properties.Statistic)),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse.FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicy_MetricDimensionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnScalingPolicyMetricDimensionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_MetricDimensionPropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicy_PredefinedMetricSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnScalingPolicyPredefinedMetricSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_PredefinedMetricSpecificationPropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("predefinedMetricType","PredefinedMetricType",cfn_parse.FromCloudFormation.getString(properties.PredefinedMetricType)),ret.addPropertyResult("resourceLabel","ResourceLabel",properties.ResourceLabel!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceLabel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicy_StepAdjustmentPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnScalingPolicyStepAdjustmentPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_StepAdjustmentPropertyValidator(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getNumber(properties.ScalingAdjustment)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnScalingPolicy_StepScalingPolicyConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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(CfnScalingPolicy_StepAdjustmentPropertyValidator))(properties.stepAdjustments)),errors.wrap('supplied properties not correct for "StepScalingPolicyConfigurationProperty"')}function cfnScalingPolicyStepScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_StepScalingPolicyConfigurationPropertyValidator(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(cfnScalingPolicyStepAdjustmentPropertyToCloudFormation)(properties.stepAdjustments)}):properties}function CfnScalingPolicyStepScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")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 CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("customizedMetricSpecification",CfnScalingPolicy_CustomizedMetricSpecificationPropertyValidator)(properties.customizedMetricSpecification)),errors.collect(cdk.propertyValidator("disableScaleIn",cdk.validateBoolean)(properties.disableScaleIn)),errors.collect(cdk.propertyValidator("predefinedMetricSpecification",CfnScalingPolicy_PredefinedMetricSpecificationPropertyValidator)(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 cfnScalingPolicyTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{CustomizedMetricSpecification:cfnScalingPolicyCustomizedMetricSpecificationPropertyToCloudFormation(properties.customizedMetricSpecification),DisableScaleIn:cdk.booleanToCloudFormation(properties.disableScaleIn),PredefinedMetricSpecification:cfnScalingPolicyPredefinedMetricSpecificationPropertyToCloudFormation(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getNumber(properties.TargetValue)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}