import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class MetricStat { Metric ! : Metric ; Period ! : Value < number > ; Stat ! : Value < string > ; Unit ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricDataQuery { Expression ? : Value < string > ; Id ! : Value < string > ; Label ? : Value < string > ; MetricStat ? : MetricStat ; Period ? : Value < number > ; ReturnData ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Dimension { Name ! : Value < string > ; Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Metric { Dimensions ? : List < Dimension > ; MetricName ? : Value < string > ; Namespace ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface AlarmProperties { ActionsEnabled ? : Value < boolean > ; AlarmActions ? : List < Value < string > > ; AlarmDescription ? : Value < string > ; AlarmName ? : Value < string > ; ComparisonOperator : Value < string > ; DatapointsToAlarm ? : Value < number > ; Dimensions ? : List < Dimension > ; EvaluateLowSampleCountPercentile ? : Value < string > ; EvaluationPeriods : Value < number > ; ExtendedStatistic ? : Value < string > ; InsufficientDataActions ? : List < Value < string > > ; MetricName ? : Value < string > ; Metrics ? : List < MetricDataQuery > ; Namespace ? : Value < string > ; OKActions ? : List < Value < string > > ; Period ? : Value < number > ; Statistic ? : Value < string > ; Threshold ? : Value < number > ; ThresholdMetricId ? : Value < string > ; TreatMissingData ? : Value < string > ; Unit ? : Value < string > ; } export default class Alarm extends ResourceBase < AlarmProperties > { static MetricStat = MetricStat ; static MetricDataQuery = MetricDataQuery ; static Dimension = Dimension ; static Metric = Metric ; constructor ( properties ) { super ( 'AWS::CloudWatch::Alarm' , properties ) ; } }