import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class CustomizedMetricSpecification { Dimensions ? : List < MetricDimension > ; MetricName ! : Value < string > ; Namespace ! : Value < string > ; Statistic ! : Value < string > ; Unit ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricDimension { Name ! : Value < string > ; Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetTrackingConfiguration { CustomizedMetricSpecification ? : CustomizedMetricSpecification ; DisableScaleIn ? : Value < boolean > ; PredefinedMetricSpecification ? : PredefinedMetricSpecification ; TargetValue ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StepAdjustment { MetricIntervalLowerBound ? : Value < number > ; MetricIntervalUpperBound ? : Value < number > ; ScalingAdjustment ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PredefinedMetricSpecification { PredefinedMetricType ! : Value < string > ; ResourceLabel ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ScalingPolicyProperties { AdjustmentType ? : Value < string > ; AutoScalingGroupName : Value < string > ; Cooldown ? : Value < string > ; EstimatedInstanceWarmup ? : Value < number > ; MetricAggregationType ? : Value < string > ; MinAdjustmentMagnitude ? : Value < number > ; PolicyType ? : Value < string > ; ScalingAdjustment ? : Value < number > ; StepAdjustments ? : List < StepAdjustment > ; TargetTrackingConfiguration ? : TargetTrackingConfiguration ; } export default class ScalingPolicy extends ResourceBase < ScalingPolicyProperties > { static CustomizedMetricSpecification = CustomizedMetricSpecification ; static MetricDimension = MetricDimension ; static TargetTrackingConfiguration = TargetTrackingConfiguration ; static StepAdjustment = StepAdjustment ; static PredefinedMetricSpecification = PredefinedMetricSpecification ; constructor ( properties ) { super ( 'AWS::AutoScaling::ScalingPolicy' , properties ) ; } }