                              ::insufficient-data-actions
                              ::ok-actions
                              ::statistic
-                             ::unit]))
+                             ::unit
+                             ::datapoints-to-alarm
+                             ::evaluate-low-sample-count-percentile
+                             ::metrics
+                             ::period
+                             ::threshold
+                             ::threshold-metric-id]))
 
 (defresource alarm "AWS::CloudWatch::Alarm" ::alarm)

                             "None"}))

(s/def ::alarm (s/keys :req [::comparison-operator
                             ::evaluation-periods
                             ::metric-name
                             ::namespace
                             ::period
                             ::threshold]
                       :opt [::actions-enabled
                             ::alarm-actions
                             ::alarm-description
                             ::alarm-name

(s/def ::comparison-operator (spec-or-ref #{"GreaterThanOrEqualToThreshold"
                                            "GreaterThanThreshold"
                                            "LessThanThreshold"
                                            "LessThanOrEqualToThreshold"
                                            "LessThanLowerThreshold"
                                            "LessThanLowerOrGreaterThanUpperThreshold"}))

(s/def ::value (spec-or-ref string?))

(s/def ::name (spec-or-ref string?))

(s/def ::datapoints-to-alarm (spec-or-ref int?))

(s/def ::dimension (s/keys :req [::name ::value]))

(s/def ::dimensions (s/coll-of ::dimension :kind vector?))

(s/def ::evaluate-low-sample-count-percentile (spec-or-ref string?))

(s/def ::evaluation-periods (spec-or-ref pos-int?))

