MONITORING

DeleteAlarms

valid {
    input.Body.AlarmNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAnomalyDetector

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]

valid {
    input.Body.Namespace == STRING
    input.Body.MetricName == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.Stat == STRING
    input.Body.SingleMetricAnomalyDetector.AccountId == STRING
    input.Body.SingleMetricAnomalyDetector.Namespace == STRING
    input.Body.SingleMetricAnomalyDetector.MetricName == STRING
    input.Body.SingleMetricAnomalyDetector.Dimensions[_].Name == STRING
    input.Body.SingleMetricAnomalyDetector.Dimensions[_].Value == STRING
    input.Body.SingleMetricAnomalyDetector.Stat == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Id == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Period == INTEGER
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Unit == enum_StandardUnit[_]
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Expression == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Label == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Period == INTEGER
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].AccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDashboards

valid {
    input.Body.DashboardNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInsightRules

valid {
    input.Body.RuleNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMetricStream

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAlarmHistory

enum_AlarmType := [ "CompositeAlarm", "MetricAlarm" ]
enum_HistoryItemType := [ "ConfigurationUpdate", "StateUpdate", "Action" ]
enum_ScanBy := [ "TimestampDescending", "TimestampAscending" ]

valid {
    input.Body.AlarmName == STRING
    input.Body.AlarmTypes[_] == enum_AlarmType[_]
    input.Body.HistoryItemType == enum_HistoryItemType[_]
    input.Body.StartDate == TIMESTAMP
    input.Body.EndDate == TIMESTAMP
    input.Body.MaxRecords == INTEGER
    input.Body.NextToken == STRING
    input.Body.ScanBy == enum_ScanBy[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAlarms

enum_AlarmType := [ "CompositeAlarm", "MetricAlarm" ]
enum_StateValue := [ "OK", "ALARM", "INSUFFICIENT_DATA" ]

valid {
    input.Body.AlarmNames[_] == STRING
    input.Body.AlarmNamePrefix == STRING
    input.Body.AlarmTypes[_] == enum_AlarmType[_]
    input.Body.ChildrenOfAlarmName == STRING
    input.Body.ParentsOfAlarmName == STRING
    input.Body.StateValue == enum_StateValue[_]
    input.Body.ActionPrefix == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAlarmsForMetric

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]
enum_Statistic := [ "SampleCount", "Average", "Sum", "Minimum", "Maximum" ]

valid {
    input.Body.MetricName == STRING
    input.Body.Namespace == STRING
    input.Body.Statistic == enum_Statistic[_]
    input.Body.ExtendedStatistic == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.Period == INTEGER
    input.Body.Unit == enum_StandardUnit[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAnomalyDetectors

enum_AnomalyDetectorType := [ "SINGLE_METRIC", "METRIC_MATH" ]

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Namespace == STRING
    input.Body.MetricName == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.AnomalyDetectorTypes[_] == enum_AnomalyDetectorType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInsightRules

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableAlarmActions

valid {
    input.Body.AlarmNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableInsightRules

valid {
    input.Body.RuleNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableAlarmActions

valid {
    input.Body.AlarmNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableInsightRules

valid {
    input.Body.RuleNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDashboard

valid {
    input.Body.DashboardName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInsightRuleReport

valid {
    input.Body.RuleName == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Period == INTEGER
    input.Body.MaxContributorCount == INTEGER
    input.Body.Metrics[_] == STRING
    input.Body.OrderBy == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricData

enum_ScanBy := [ "TimestampDescending", "TimestampAscending" ]
enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]

valid {
    input.Body.MetricDataQueries[_].Id == STRING
    input.Body.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.MetricDataQueries[_].MetricStat.Period == INTEGER
    input.Body.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.MetricDataQueries[_].MetricStat.Unit == enum_StandardUnit[_]
    input.Body.MetricDataQueries[_].Expression == STRING
    input.Body.MetricDataQueries[_].Label == STRING
    input.Body.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.MetricDataQueries[_].Period == INTEGER
    input.Body.MetricDataQueries[_].AccountId == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.NextToken == STRING
    input.Body.ScanBy == enum_ScanBy[_]
    input.Body.MaxDatapoints == INTEGER
    input.Body.LabelOptions.Timezone == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricStatistics

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]
enum_Statistic := [ "SampleCount", "Average", "Sum", "Minimum", "Maximum" ]

valid {
    input.Body.Namespace == STRING
    input.Body.MetricName == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Period == INTEGER
    input.Body.Statistics[_] == enum_Statistic[_]
    input.Body.ExtendedStatistics[_] == STRING
    input.Body.Unit == enum_StandardUnit[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricStream

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricWidgetImage

valid {
    input.Body.MetricWidget == STRING
    input.Body.OutputFormat == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDashboards

valid {
    input.Body.DashboardNamePrefix == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListManagedInsightRules

valid {
    input.Body.ResourceARN == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMetricStreams

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMetrics

enum_RecentlyActive := [ "PT3H" ]

valid {
    input.Body.Namespace == STRING
    input.Body.MetricName == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.NextToken == STRING
    input.Body.RecentlyActive == enum_RecentlyActive[_]
    input.Body.IncludeLinkedAccounts == BOOLEAN
    input.Body.OwningAccount == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.ResourceARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutAnomalyDetector

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]

valid {
    input.Body.Namespace == STRING
    input.Body.MetricName == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.Stat == STRING
    input.Body.Configuration.ExcludedTimeRanges[_].StartTime == TIMESTAMP
    input.Body.Configuration.ExcludedTimeRanges[_].EndTime == TIMESTAMP
    input.Body.Configuration.MetricTimezone == STRING
    input.Body.MetricCharacteristics.PeriodicSpikes == BOOLEAN
    input.Body.SingleMetricAnomalyDetector.AccountId == STRING
    input.Body.SingleMetricAnomalyDetector.Namespace == STRING
    input.Body.SingleMetricAnomalyDetector.MetricName == STRING
    input.Body.SingleMetricAnomalyDetector.Dimensions[_].Name == STRING
    input.Body.SingleMetricAnomalyDetector.Dimensions[_].Value == STRING
    input.Body.SingleMetricAnomalyDetector.Stat == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Id == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Period == INTEGER
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].MetricStat.Unit == enum_StandardUnit[_]
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Expression == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Label == STRING
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].Period == INTEGER
    input.Body.MetricMathAnomalyDetector.MetricDataQueries[_].AccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutCompositeAlarm

valid {
    input.Body.ActionsEnabled == BOOLEAN
    input.Body.AlarmActions[_] == STRING
    input.Body.AlarmDescription == STRING
    input.Body.AlarmName == STRING
    input.Body.AlarmRule == STRING
    input.Body.InsufficientDataActions[_] == STRING
    input.Body.OKActions[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ActionsSuppressor == STRING
    input.Body.ActionsSuppressorWaitPeriod == INTEGER
    input.Body.ActionsSuppressorExtensionPeriod == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDashboard

valid {
    input.Body.DashboardName == STRING
    input.Body.DashboardBody == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutInsightRule

valid {
    input.Body.RuleName == STRING
    input.Body.RuleState == STRING
    input.Body.RuleDefinition == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutManagedInsightRules

valid {
    input.Body.ManagedRules[_].TemplateName == STRING
    input.Body.ManagedRules[_].ResourceARN == STRING
    input.Body.ManagedRules[_].Tags[_].Key == STRING
    input.Body.ManagedRules[_].Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutMetricAlarm

enum_ComparisonOperator := [ "GreaterThanOrEqualToThreshold", "GreaterThanThreshold", "LessThanThreshold", "LessThanOrEqualToThreshold", "LessThanLowerOrGreaterThanUpperThreshold", "LessThanLowerThreshold", "GreaterThanUpperThreshold" ]
enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]
enum_Statistic := [ "SampleCount", "Average", "Sum", "Minimum", "Maximum" ]

valid {
    input.Body.AlarmName == STRING
    input.Body.AlarmDescription == STRING
    input.Body.ActionsEnabled == BOOLEAN
    input.Body.OKActions[_] == STRING
    input.Body.AlarmActions[_] == STRING
    input.Body.InsufficientDataActions[_] == STRING
    input.Body.MetricName == STRING
    input.Body.Namespace == STRING
    input.Body.Statistic == enum_Statistic[_]
    input.Body.ExtendedStatistic == STRING
    input.Body.Dimensions[_].Name == STRING
    input.Body.Dimensions[_].Value == STRING
    input.Body.Period == INTEGER
    input.Body.Unit == enum_StandardUnit[_]
    input.Body.EvaluationPeriods == INTEGER
    input.Body.DatapointsToAlarm == INTEGER
    input.Body.Threshold == DOUBLE
    input.Body.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.TreatMissingData == STRING
    input.Body.EvaluateLowSampleCountPercentile == STRING
    input.Body.Metrics[_].Id == STRING
    input.Body.Metrics[_].MetricStat.Metric.Namespace == STRING
    input.Body.Metrics[_].MetricStat.Metric.MetricName == STRING
    input.Body.Metrics[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.Metrics[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.Metrics[_].MetricStat.Period == INTEGER
    input.Body.Metrics[_].MetricStat.Stat == STRING
    input.Body.Metrics[_].MetricStat.Unit == enum_StandardUnit[_]
    input.Body.Metrics[_].Expression == STRING
    input.Body.Metrics[_].Label == STRING
    input.Body.Metrics[_].ReturnData == BOOLEAN
    input.Body.Metrics[_].Period == INTEGER
    input.Body.Metrics[_].AccountId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ThresholdMetricId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutMetricData

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]

valid {
    input.Body.Namespace == STRING
    input.Body.MetricData[_].MetricName == STRING
    input.Body.MetricData[_].Dimensions[_].Name == STRING
    input.Body.MetricData[_].Dimensions[_].Value == STRING
    input.Body.MetricData[_].Timestamp == TIMESTAMP
    input.Body.MetricData[_].Value == DOUBLE
    input.Body.MetricData[_].StatisticValues.SampleCount == DOUBLE
    input.Body.MetricData[_].StatisticValues.Sum == DOUBLE
    input.Body.MetricData[_].StatisticValues.Minimum == DOUBLE
    input.Body.MetricData[_].StatisticValues.Maximum == DOUBLE
    input.Body.MetricData[_].Values[_] == DOUBLE
    input.Body.MetricData[_].Counts[_] == DOUBLE
    input.Body.MetricData[_].Unit == enum_StandardUnit[_]
    input.Body.MetricData[_].StorageResolution == INTEGER
    input.Body.EntityMetricData[_].Entity.KeyAttributes.STRING == STRING
    input.Body.EntityMetricData[_].Entity.Attributes.STRING == STRING
    input.Body.EntityMetricData[_].MetricData[_].MetricName == STRING
    input.Body.EntityMetricData[_].MetricData[_].Dimensions[_].Name == STRING
    input.Body.EntityMetricData[_].MetricData[_].Dimensions[_].Value == STRING
    input.Body.EntityMetricData[_].MetricData[_].Timestamp == TIMESTAMP
    input.Body.EntityMetricData[_].MetricData[_].Value == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].StatisticValues.SampleCount == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].StatisticValues.Sum == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].StatisticValues.Minimum == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].StatisticValues.Maximum == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].Values[_] == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].Counts[_] == DOUBLE
    input.Body.EntityMetricData[_].MetricData[_].Unit == enum_StandardUnit[_]
    input.Body.EntityMetricData[_].MetricData[_].StorageResolution == INTEGER
    input.Body.StrictEntityValidation == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutMetricStream

enum_MetricStreamOutputFormat := [ "json", "opentelemetry0.7", "opentelemetry1.0" ]

valid {
    input.Body.Name == STRING
    input.Body.IncludeFilters[_].Namespace == STRING
    input.Body.IncludeFilters[_].MetricNames[_] == STRING
    input.Body.ExcludeFilters[_].Namespace == STRING
    input.Body.ExcludeFilters[_].MetricNames[_] == STRING
    input.Body.FirehoseArn == STRING
    input.Body.RoleArn == STRING
    input.Body.OutputFormat == enum_MetricStreamOutputFormat[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StatisticsConfigurations[_].IncludeMetrics[_].Namespace == STRING
    input.Body.StatisticsConfigurations[_].IncludeMetrics[_].MetricName == STRING
    input.Body.StatisticsConfigurations[_].AdditionalStatistics[_] == STRING
    input.Body.IncludeLinkedAccountsMetrics == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetAlarmState

enum_StateValue := [ "OK", "ALARM", "INSUFFICIENT_DATA" ]

valid {
    input.Body.AlarmName == STRING
    input.Body.StateValue == enum_StateValue[_]
    input.Body.StateReason == STRING
    input.Body.StateReasonData == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartMetricStreams

valid {
    input.Body.Names[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopMetricStreams

valid {
    input.Body.Names[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}