@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon CloudWatch
@version 2010-08-01
@auth AWS SigV4
@endpoints 38
@hint download_for_search
@toc root(38)

@endpoint POST /
@required {AlarmNames: [str]}

@endpoint POST /
@optional {Namespace: str, MetricName: str, Dimensions: [Dimension], Stat: str, SingleMetricAnomalyDetector: SingleMetricAnomalyDetector, MetricMathAnomalyDetector: MetricMathAnomalyDetector}

@endpoint POST /
@required {DashboardNames: [str]}

@endpoint POST /
@required {RuleNames: [str]}
@returns(200) {Failures: [PartialFailure]?}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@optional {AlarmName: str, AlarmTypes: [str], HistoryItemType: str, StartDate: str(timestamp), EndDate: str(timestamp), MaxRecords: int, NextToken: str, ScanBy: str}
@returns(200) {AlarmHistoryItems: [AlarmHistoryItem]?, NextToken: str?}

@endpoint POST /
@optional {AlarmNames: [str], AlarmNamePrefix: str, AlarmTypes: [str], ChildrenOfAlarmName: str, ParentsOfAlarmName: str, StateValue: str, ActionPrefix: str, MaxRecords: int, NextToken: str}
@returns(200) {CompositeAlarms: [CompositeAlarm]?, MetricAlarms: [MetricAlarm]?, NextToken: str?}

@endpoint POST /
@required {MetricName: str, Namespace: str}
@optional {Statistic: str, ExtendedStatistic: str, Dimensions: [Dimension], Period: int, Unit: str}
@returns(200) {MetricAlarms: [MetricAlarm]?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int, Namespace: str, MetricName: str, Dimensions: [Dimension], AnomalyDetectorTypes: [str]}
@returns(200) {AnomalyDetectors: [AnomalyDetector]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, InsightRules: [InsightRule]?}

@endpoint POST /
@required {AlarmNames: [str]}

@endpoint POST /
@required {RuleNames: [str]}
@returns(200) {Failures: [PartialFailure]?}

@endpoint POST /
@required {AlarmNames: [str]}

@endpoint POST /
@required {RuleNames: [str]}
@returns(200) {Failures: [PartialFailure]?}

@endpoint POST /
@required {DashboardName: str}
@returns(200) {DashboardArn: str?, DashboardBody: str?, DashboardName: str?}

@endpoint POST /
@required {RuleName: str, StartTime: str(timestamp), EndTime: str(timestamp), Period: int}
@optional {MaxContributorCount: int, Metrics: [str], OrderBy: str}
@returns(200) {KeyLabels: [str]?, AggregationStatistic: str?, AggregateValue: num(f64)?, ApproximateUniqueCount: int(i64)?, Contributors: [InsightRuleContributor]?, MetricDatapoints: [InsightRuleMetricDatapoint]?}

@endpoint POST /
@required {MetricDataQueries: [MetricDataQuery], StartTime: str(timestamp), EndTime: str(timestamp)}
@optional {NextToken: str, ScanBy: str, MaxDatapoints: int, LabelOptions: LabelOptions}
@returns(200) {MetricDataResults: [MetricDataResult]?, NextToken: str?, Messages: [MessageData]?}

@endpoint POST /
@required {Namespace: str, MetricName: str, StartTime: str(timestamp), EndTime: str(timestamp), Period: int}
@optional {Dimensions: [Dimension], Statistics: [str], ExtendedStatistics: [str], Unit: str}
@returns(200) {Label: str?, Datapoints: [Datapoint]?}

@endpoint POST /
@required {Name: str}
@returns(200) {Arn: str?, Name: str?, IncludeFilters: [MetricStreamFilter]?, ExcludeFilters: [MetricStreamFilter]?, FirehoseArn: str?, RoleArn: str?, State: str?, CreationDate: str(timestamp)?, LastUpdateDate: str(timestamp)?, OutputFormat: str?, StatisticsConfigurations: [MetricStreamStatisticsConfiguration]?, IncludeLinkedAccountsMetrics: bool?}

@endpoint POST /
@required {MetricWidget: str}
@optional {OutputFormat: str}
@returns(200) {MetricWidgetImage: bytes?}

@endpoint POST /
@optional {DashboardNamePrefix: str, NextToken: str}
@returns(200) {DashboardEntries: [DashboardEntry]?, NextToken: str?}

@endpoint POST /
@required {ResourceARN: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {ManagedRules: [ManagedRuleDescription]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, Entries: [MetricStreamEntry]?}

@endpoint POST /
@optional {Namespace: str, MetricName: str, Dimensions: [DimensionFilter], NextToken: str, RecentlyActive: str, IncludeLinkedAccounts: bool, OwningAccount: str}
@returns(200) {Metrics: [Metric]?, NextToken: str?, OwningAccounts: [str]?}

@endpoint POST /
@required {ResourceARN: str}
@returns(200) {Tags: [Tag]?}

@endpoint POST /
@optional {Namespace: str, MetricName: str, Dimensions: [Dimension], Stat: str, Configuration: AnomalyDetectorConfiguration, MetricCharacteristics: MetricCharacteristics, SingleMetricAnomalyDetector: SingleMetricAnomalyDetector, MetricMathAnomalyDetector: MetricMathAnomalyDetector}

@endpoint POST /
@required {AlarmName: str, AlarmRule: str}
@optional {ActionsEnabled: bool, AlarmActions: [str], AlarmDescription: str, InsufficientDataActions: [str], OKActions: [str], Tags: [Tag], ActionsSuppressor: str, ActionsSuppressorWaitPeriod: int, ActionsSuppressorExtensionPeriod: int}

@endpoint POST /
@required {DashboardName: str, DashboardBody: str}
@returns(200) {DashboardValidationMessages: [DashboardValidationMessage]?}

@endpoint POST /
@required {RuleName: str, RuleDefinition: str}
@optional {RuleState: str, Tags: [Tag]}

@endpoint POST /
@required {ManagedRules: [ManagedRule]}
@returns(200) {Failures: [PartialFailure]?}

@endpoint POST /
@required {AlarmName: str, EvaluationPeriods: int, ComparisonOperator: str}
@optional {AlarmDescription: str, ActionsEnabled: bool, OKActions: [str], AlarmActions: [str], InsufficientDataActions: [str], MetricName: str, Namespace: str, Statistic: str, ExtendedStatistic: str, Dimensions: [Dimension], Period: int, Unit: str, DatapointsToAlarm: int, Threshold: num(f64), TreatMissingData: str, EvaluateLowSampleCountPercentile: str, Metrics: [MetricDataQuery], Tags: [Tag], ThresholdMetricId: str}

@endpoint POST /
@required {Namespace: str, MetricData: [MetricDatum]}

@endpoint POST /
@required {Name: str, FirehoseArn: str, RoleArn: str, OutputFormat: str}
@optional {IncludeFilters: [MetricStreamFilter], ExcludeFilters: [MetricStreamFilter], Tags: [Tag], StatisticsConfigurations: [MetricStreamStatisticsConfiguration], IncludeLinkedAccountsMetrics: bool}
@returns(200) {Arn: str?}

@endpoint POST /
@required {AlarmName: str, StateValue: str, StateReason: str}
@optional {StateReasonData: str}

@endpoint POST /
@required {Names: [str]}

@endpoint POST /
@required {Names: [str]}

@endpoint POST /
@required {ResourceARN: str, Tags: [Tag]}

@endpoint POST /
@required {ResourceARN: str, TagKeys: [str]}

@end
