{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "PutMetricAlarmInput",
  "type": "object",
  "properties": {
    "AlarmName": {
      "type": "string",
      "description": "The name for the alarm."
    },
    "AlarmDescription": {
      "type": "string",
      "description": "The description for the alarm."
    },
    "ActionsEnabled": {
      "type": "boolean",
      "description": "Indicates whether actions should be executed during any changes to the alarm state."
    },
    "OKActions": {
      "type": "array",
      "description": "The actions to execute when this alarm transitions to an OK state."
    },
    "AlarmActions": {
      "type": "array",
      "description": "The actions to execute when this alarm transitions to the ALARM state."
    },
    "InsufficientDataActions": {
      "type": "array",
      "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state."
    },
    "MetricName": {
      "type": "string",
      "description": "The name for the metric associated with the alarm."
    },
    "Namespace": {
      "type": "string",
      "description": "The namespace for the metric associated with the alarm."
    },
    "ExtendedStatistic": {
      "type": "string",
      "description": "The percentile statistic for the metric specified in MetricName."
    },
    "Dimensions": {
      "type": "array",
      "description": "The dimensions for the metric specified in MetricName."
    },
    "Period": {
      "type": "integer",
      "description": "The length, in seconds, used each time the metric specified in MetricName is evaluated."
    },
    "EvaluationPeriods": {
      "type": "integer",
      "description": "The number of periods over which data is compared to the specified threshold."
    },
    "DatapointsToAlarm": {
      "type": "integer",
      "description": "The number of data points that must be breaching to trigger the alarm."
    },
    "Threshold": {
      "type": "number",
      "description": "The value against which the specified statistic is compared."
    },
    "TreatMissingData": {
      "type": "string",
      "description": "Sets how this alarm is to handle missing data points."
    },
    "EvaluateLowSampleCountPercentile": {
      "type": "string",
      "description": "Used only for alarms based on percentiles."
    },
    "Metrics": {
      "type": "array",
      "description": "An array of MetricDataQuery structures for metric math expression alarms."
    },
    "Tags": {
      "type": "array",
      "description": "A list of key-value pairs to associate with the alarm."
    },
    "ThresholdMetricId": {
      "type": "string",
      "description": "If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function."
    }
  }
}