@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Performance Insights
@version 2018-02-27
@auth AWS SigV4
@endpoints 13
@toc root(13)

@endpoint POST /
@required {ServiceType: str, Identifier: str, StartTime: str(timestamp), EndTime: str(timestamp)}
@optional {Tags: [Tag]}
@returns(200) {AnalysisReportId: str?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, AnalysisReportId: str}

@endpoint POST /
@required {ServiceType: str, Identifier: str, StartTime: str(timestamp), EndTime: str(timestamp), Metric: str, GroupBy: DimensionGroup}
@optional {PeriodInSeconds: int, AdditionalMetrics: [str], PartitionBy: DimensionGroup, Filter: map<str,str>, MaxResults: int, NextToken: str}
@returns(200) {AlignedStartTime: str(timestamp)?, AlignedEndTime: str(timestamp)?, PartitionKeys: [ResponsePartitionKey]?, Keys: [DimensionKeyDescription]?, NextToken: str?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, Group: str, GroupIdentifier: str}
@optional {RequestedDimensions: [str]}
@returns(200) {Dimensions: [DimensionKeyDetail]?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, AnalysisReportId: str}
@optional {TextFormat: str, AcceptLanguage: str}
@returns(200) {AnalysisReport: AnalysisReport?{AnalysisReportId: str, Identifier: str?, ServiceType: str?, CreateTime: str(timestamp)?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, Status: str?, Insights: [Insight]?}}

@endpoint POST /
@required {ServiceType: str, Identifier: str}
@returns(200) {Identifier: str?, Features: map<str,FeatureMetadata>?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, MetricQueries: [MetricQuery], StartTime: str(timestamp), EndTime: str(timestamp)}
@optional {PeriodInSeconds: int, MaxResults: int, NextToken: str, PeriodAlignment: str}
@returns(200) {AlignedStartTime: str(timestamp)?, AlignedEndTime: str(timestamp)?, Identifier: str?, MetricList: [MetricKeyDataPoints]?, NextToken: str?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, Metrics: [str]}
@optional {MaxResults: int, NextToken: str, AuthorizedActions: [str]}
@returns(200) {MetricDimensions: [MetricDimensionGroups]?, NextToken: str?}

@endpoint POST /
@required {ServiceType: str, Identifier: str, MetricTypes: [str]}
@optional {NextToken: str, MaxResults: int}
@returns(200) {Metrics: [ResponseResourceMetric]?, NextToken: str?}

@endpoint POST /
@required {ServiceType: str, Identifier: str}
@optional {NextToken: str, MaxResults: int, ListTags: bool}
@returns(200) {AnalysisReports: [AnalysisReportSummary]?, NextToken: str?}

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

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

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

@end
