@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon CloudWatch Logs
@version 2014-03-28
@auth AWS SigV4
@endpoints 76
@hint download_for_search
@toc root(76)

@endpoint POST /
@required {kmsKeyId: str}
@optional {logGroupName: str, resourceIdentifier: str}

@endpoint POST /
@required {taskId: str}

@endpoint POST /
@required {deliverySourceName: str, deliveryDestinationArn: str}
@optional {recordFields: [str], fieldDelimiter: str, s3DeliveryConfiguration: S3DeliveryConfiguration, tags: map<str,str>}
@returns(200) {delivery: Delivery?{id: str?, arn: str?, deliverySourceName: str?, deliveryDestinationArn: str?, deliveryDestinationType: str?, recordFields: [str]?, fieldDelimiter: str?, s3DeliveryConfiguration: S3DeliveryConfiguration?{suffixPath: str?, enableHiveCompatiblePath: bool?}, tags: map<str,str>?}}

@endpoint POST /
@required {logGroupName: str, from: int(i64), to: int(i64), destination: str}
@optional {taskName: str, logStreamNamePrefix: str, destinationPrefix: str}
@returns(200) {taskId: str?}

@endpoint POST /
@required {logGroupArnList: [str]}
@optional {detectorName: str, evaluationFrequency: str, filterPattern: str, kmsKeyId: str, anomalyVisibilityTime: int(i64), tags: map<str,str>}
@returns(200) {anomalyDetectorArn: str?}

@endpoint POST /
@required {logGroupName: str}
@optional {kmsKeyId: str, tags: map<str,str>, logGroupClass: str}

@endpoint POST /
@required {logGroupName: str, logStreamName: str}

@endpoint POST /
@required {policyName: str, policyType: str}

@endpoint POST /
@required {logGroupIdentifier: str}

@endpoint POST /
@required {id: str}

@endpoint POST /
@required {name: str}

@endpoint POST /
@required {deliveryDestinationName: str}

@endpoint POST /
@required {name: str}

@endpoint POST /
@required {destinationName: str}

@endpoint POST /
@required {anomalyDetectorArn: str}

@endpoint POST /
@required {logGroupName: str}

@endpoint POST /
@required {logGroupName: str, logStreamName: str}

@endpoint POST /
@required {logGroupName: str, filterName: str}

@endpoint POST /
@required {queryDefinitionId: str}
@returns(200) {success: bool?}

@endpoint POST /
@optional {policyName: str}

@endpoint POST /
@required {logGroupName: str}

@endpoint POST /
@required {logGroupName: str, filterName: str}

@endpoint POST /
@required {policyType: str}
@optional {policyName: str, accountIdentifiers: [str]}
@returns(200) {accountPolicies: [AccountPolicy]?}

@endpoint POST /
@optional {service: str, logTypes: [str], resourceTypes: [str], deliveryDestinationTypes: [str], nextToken: str, limit: int}
@returns(200) {configurationTemplates: [ConfigurationTemplate]?, nextToken: str?}

@endpoint POST /
@optional {nextToken: str, limit: int}
@returns(200) {deliveries: [Delivery]?, nextToken: str?}

@endpoint POST /
@optional {nextToken: str, limit: int}
@returns(200) {deliveryDestinations: [DeliveryDestination]?, nextToken: str?}

@endpoint POST /
@optional {nextToken: str, limit: int}
@returns(200) {deliverySources: [DeliverySource]?, nextToken: str?}

@endpoint POST /
@optional {DestinationNamePrefix: str, nextToken: str, limit: int}
@returns(200) {destinations: [Destination]?, nextToken: str?}

@endpoint POST /
@optional {taskId: str, statusCode: str, nextToken: str, limit: int}
@returns(200) {exportTasks: [ExportTask]?, nextToken: str?}

@endpoint POST /
@optional {accountIdentifiers: [str], logGroupNamePrefix: str, logGroupNamePattern: str, nextToken: str, limit: int, includeLinkedAccounts: bool, logGroupClass: str}
@returns(200) {logGroups: [LogGroup]?, nextToken: str?}

@endpoint POST /
@optional {logGroupName: str, logGroupIdentifier: str, logStreamNamePrefix: str, orderBy: str, descending: bool, nextToken: str, limit: int}
@returns(200) {logStreams: [LogStream]?, nextToken: str?}

@endpoint POST /
@optional {logGroupName: str, filterNamePrefix: str, nextToken: str, limit: int, metricName: str, metricNamespace: str}
@returns(200) {metricFilters: [MetricFilter]?, nextToken: str?}

@endpoint POST /
@optional {logGroupName: str, status: str, maxResults: int, nextToken: str}
@returns(200) {queries: [QueryInfo]?, nextToken: str?}

@endpoint POST /
@optional {queryDefinitionNamePrefix: str, maxResults: int, nextToken: str}
@returns(200) {queryDefinitions: [QueryDefinition]?, nextToken: str?}

@endpoint POST /
@optional {nextToken: str, limit: int}
@returns(200) {resourcePolicies: [ResourcePolicy]?, nextToken: str?}

@endpoint POST /
@required {logGroupName: str}
@optional {filterNamePrefix: str, nextToken: str, limit: int}
@returns(200) {subscriptionFilters: [SubscriptionFilter]?, nextToken: str?}

@endpoint POST /
@optional {logGroupName: str, resourceIdentifier: str}

@endpoint POST /
@optional {logGroupName: str, logGroupIdentifier: str, logStreamNames: [str], logStreamNamePrefix: str, startTime: int(i64), endTime: int(i64), filterPattern: str, nextToken: str, limit: int, interleaved: bool, unmask: bool}
@returns(200) {events: [FilteredLogEvent]?, searchedLogStreams: [SearchedLogStream]?, nextToken: str?}

@endpoint POST /
@required {logGroupIdentifier: str}
@returns(200) {logGroupIdentifier: str?, policyDocument: str?, lastUpdatedTime: int(i64)?}

@endpoint POST /
@required {id: str}
@returns(200) {delivery: Delivery?{id: str?, arn: str?, deliverySourceName: str?, deliveryDestinationArn: str?, deliveryDestinationType: str?, recordFields: [str]?, fieldDelimiter: str?, s3DeliveryConfiguration: S3DeliveryConfiguration?{suffixPath: str?, enableHiveCompatiblePath: bool?}, tags: map<str,str>?}}

@endpoint POST /
@required {name: str}
@returns(200) {deliveryDestination: DeliveryDestination?{name: str?, arn: str?, deliveryDestinationType: str?, outputFormat: str?, deliveryDestinationConfiguration: DeliveryDestinationConfiguration?{destinationResourceArn: str}, tags: map<str,str>?}}

@endpoint POST /
@required {deliveryDestinationName: str}
@returns(200) {policy: Policy?{deliveryDestinationPolicy: str?}}

@endpoint POST /
@required {name: str}
@returns(200) {deliverySource: DeliverySource?{name: str?, arn: str?, resourceArns: [str]?, service: str?, logType: str?, tags: map<str,str>?}}

@endpoint POST /
@required {anomalyDetectorArn: str}
@returns(200) {detectorName: str?, logGroupArnList: [str]?, evaluationFrequency: str?, filterPattern: str?, anomalyDetectorStatus: str?, kmsKeyId: str?, creationTimeStamp: int(i64)?, lastModifiedTimeStamp: int(i64)?, anomalyVisibilityTime: int(i64)?}

@endpoint POST /
@required {logStreamName: str}
@optional {logGroupName: str, logGroupIdentifier: str, startTime: int(i64), endTime: int(i64), nextToken: str, limit: int, startFromHead: bool, unmask: bool}
@returns(200) {events: [OutputLogEvent]?, nextForwardToken: str?, nextBackwardToken: str?}

@endpoint POST /
@optional {logGroupName: str, time: int(i64), logGroupIdentifier: str}
@returns(200) {logGroupFields: [LogGroupField]?}

@endpoint POST /
@required {logRecordPointer: str}
@optional {unmask: bool}
@returns(200) {logRecord: map<str,str>?}

@endpoint POST /
@required {queryId: str}
@returns(200) {results: [[ResultField]]?, statistics: QueryStatistics?{recordsMatched: num(f64)?, recordsScanned: num(f64)?, bytesScanned: num(f64)?}, status: str?, encryptionKey: str?}

@endpoint POST /
@optional {anomalyDetectorArn: str, suppressionState: str, limit: int, nextToken: str}
@returns(200) {anomalies: [Anomaly]?, nextToken: str?}

@endpoint POST /
@optional {filterLogGroupArn: str, limit: int, nextToken: str}
@returns(200) {anomalyDetectors: [AnomalyDetector]?, nextToken: str?}

@endpoint POST /
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endpoint POST /
@required {logGroupName: str}
@returns(200) {tags: map<str,str>?}

@endpoint POST /
@required {policyName: str, policyDocument: str, policyType: str}
@optional {scope: str, selectionCriteria: str}
@returns(200) {accountPolicy: AccountPolicy?{policyName: str?, policyDocument: str?, lastUpdatedTime: int(i64)?, policyType: str?, scope: str?, selectionCriteria: str?, accountId: str?}}

@endpoint POST /
@required {logGroupIdentifier: str, policyDocument: str}
@returns(200) {logGroupIdentifier: str?, policyDocument: str?, lastUpdatedTime: int(i64)?}

@endpoint POST /
@required {name: str, deliveryDestinationConfiguration: DeliveryDestinationConfiguration}
@optional {outputFormat: str, tags: map<str,str>}
@returns(200) {deliveryDestination: DeliveryDestination?{name: str?, arn: str?, deliveryDestinationType: str?, outputFormat: str?, deliveryDestinationConfiguration: DeliveryDestinationConfiguration?{destinationResourceArn: str}, tags: map<str,str>?}}

@endpoint POST /
@required {deliveryDestinationName: str, deliveryDestinationPolicy: str}
@returns(200) {policy: Policy?{deliveryDestinationPolicy: str?}}

@endpoint POST /
@required {name: str, resourceArn: str, logType: str}
@optional {tags: map<str,str>}
@returns(200) {deliverySource: DeliverySource?{name: str?, arn: str?, resourceArns: [str]?, service: str?, logType: str?, tags: map<str,str>?}}

@endpoint POST /
@required {destinationName: str, targetArn: str, roleArn: str}
@optional {tags: map<str,str>}
@returns(200) {destination: Destination?{destinationName: str?, targetArn: str?, roleArn: str?, accessPolicy: str?, arn: str?, creationTime: int(i64)?}}

@endpoint POST /
@required {destinationName: str, accessPolicy: str}
@optional {forceUpdate: bool}

@endpoint POST /
@required {logGroupName: str, logStreamName: str, logEvents: [InputLogEvent]}
@optional {sequenceToken: str, entity: Entity}
@returns(200) {nextSequenceToken: str?, rejectedLogEventsInfo: RejectedLogEventsInfo?{tooNewLogEventStartIndex: int?, tooOldLogEventEndIndex: int?, expiredLogEventEndIndex: int?}, rejectedEntityInfo: RejectedEntityInfo?{errorType: str}}

@endpoint POST /
@required {logGroupName: str, filterName: str, filterPattern: str, metricTransformations: [MetricTransformation]}

@endpoint POST /
@required {name: str, queryString: str}
@optional {queryDefinitionId: str, logGroupNames: [str], clientToken: str}
@returns(200) {queryDefinitionId: str?}

@endpoint POST /
@optional {policyName: str, policyDocument: str}
@returns(200) {resourcePolicy: ResourcePolicy?{policyName: str?, policyDocument: str?, lastUpdatedTime: int(i64)?}}

@endpoint POST /
@required {logGroupName: str, retentionInDays: int}

@endpoint POST /
@required {logGroupName: str, filterName: str, filterPattern: str, destinationArn: str}
@optional {roleArn: str, distribution: str}

@endpoint POST /
@required {logGroupIdentifiers: [str]}
@optional {logStreamNames: [str], logStreamNamePrefixes: [str], logEventFilterPattern: str}
@returns(200) {responseStream: StartLiveTailResponseStream?{sessionStart: LiveTailSessionStart?{requestId: str?, sessionId: str?, logGroupIdentifiers: [str]?, logStreamNames: [str]?, logStreamNamePrefixes: [str]?, logEventFilterPattern: str?}, sessionUpdate: LiveTailSessionUpdate?{sessionMetadata: LiveTailSessionMetadata?{sampled: bool?}, sessionResults: [LiveTailSessionLogEvent]?}, SessionTimeoutException: SessionTimeoutException?{message: str?}, SessionStreamingException: SessionStreamingException?{message: str?}}}

@endpoint POST /
@required {startTime: int(i64), endTime: int(i64), queryString: str}
@optional {logGroupName: str, logGroupNames: [str], logGroupIdentifiers: [str], limit: int}
@returns(200) {queryId: str?}

@endpoint POST /
@required {queryId: str}
@returns(200) {success: bool?}

@endpoint POST /
@required {logGroupName: str, tags: map<str,str>}

@endpoint POST /
@required {resourceArn: str, tags: map<str,str>}

@endpoint POST /
@required {filterPattern: str, logEventMessages: [str]}
@returns(200) {matches: [MetricFilterMatchRecord]?}

@endpoint POST /
@required {logGroupName: str, tags: [str]}

@endpoint POST /
@required {resourceArn: str, tagKeys: [str]}

@endpoint POST /
@required {anomalyDetectorArn: str}
@optional {anomalyId: str, patternId: str, suppressionType: str, suppressionPeriod: SuppressionPeriod}

@endpoint POST /
@required {id: str}
@optional {recordFields: [str], fieldDelimiter: str, s3DeliveryConfiguration: S3DeliveryConfiguration}

@endpoint POST /
@required {anomalyDetectorArn: str, enabled: bool}
@optional {evaluationFrequency: str, filterPattern: str, anomalyVisibilityTime: int(i64)}

@end
