@@ -113,6 +113,10 @@ func ResourceMetricAlarm() *schema.Resource {
113
113
"period" : {
114
114
Type : schema .TypeInt ,
115
115
Required : true ,
116
+ ValidateFunc : validation .Any (
117
+ validation .IntInSlice ([]int {1 , 5 , 10 , 30 }),
118
+ validation .IntDivisibleBy (60 ),
119
+ ),
116
120
},
117
121
"stat" : {
118
122
Type : schema .TypeString ,
@@ -138,6 +142,14 @@ func ResourceMetricAlarm() *schema.Resource {
138
142
Type : schema .TypeString ,
139
143
Optional : true ,
140
144
},
145
+ "period" : {
146
+ Type : schema .TypeInt ,
147
+ Optional : true ,
148
+ ValidateFunc : validation .Any (
149
+ validation .IntInSlice ([]int {1 , 5 , 10 , 30 }),
150
+ validation .IntDivisibleBy (60 ),
151
+ ),
152
+ },
141
153
"return_data" : {
142
154
Type : schema .TypeBool ,
143
155
Optional : true ,
@@ -611,6 +623,9 @@ func flattenMetricAlarmMetrics(metrics []*cloudwatch.MetricDataQuery) []map[stri
611
623
metric := flattenMetricAlarmMetricsMetricStat (mq .MetricStat )
612
624
metricQuery ["metric" ] = []interface {}{metric }
613
625
}
626
+ if mq .Period != nil {
627
+ metricQuery ["period" ] = aws .Int64Value (mq .Period )
628
+ }
614
629
metricQueries = append (metricQueries , metricQuery )
615
630
}
616
631
@@ -655,6 +670,9 @@ func expandMetricAlarmMetrics(v *schema.Set) []*cloudwatch.MetricDataQuery {
655
670
if v := metricQueryResource ["metric" ]; v != nil && len (v .([]interface {})) > 0 {
656
671
metricQuery .MetricStat = expandMetricAlarmMetricsMetric (v .([]interface {}))
657
672
}
673
+ if v , ok := metricQueryResource ["period" ]; ok && v .(int ) != 0 {
674
+ metricQuery .Period = aws .Int64 (int64 (v .(int )))
675
+ }
658
676
if v , ok := metricQueryResource ["account_id" ]; ok && v .(string ) != "" {
659
677
metricQuery .AccountId = aws .String (v .(string ))
660
678
}
0 commit comments