@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Athena
@version 2017-05-18
@auth AWS SigV4
@endpoints 68
@hint download_for_search
@toc root(68)

@endpoint POST /
@required {NamedQueryIds: [str]}
@returns(200) {NamedQueries: [NamedQuery]?, UnprocessedNamedQueryIds: [UnprocessedNamedQueryId]?}

@endpoint POST /
@required {PreparedStatementNames: [str], WorkGroup: str}
@returns(200) {PreparedStatements: [PreparedStatement]?, UnprocessedPreparedStatementNames: [UnprocessedPreparedStatementName]?}

@endpoint POST /
@required {QueryExecutionIds: [str]}
@returns(200) {QueryExecutions: [QueryExecution]?, UnprocessedQueryExecutionIds: [UnprocessedQueryExecutionId]?}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {TargetDpus: int, Name: str}
@optional {Tags: [Tag]}

@endpoint POST /
@required {Name: str, Type: str}
@optional {Description: str, Parameters: map<str,str>, Tags: [Tag]}

@endpoint POST /
@required {Name: str, Database: str, QueryString: str}
@optional {Description: str, ClientRequestToken: str, WorkGroup: str}
@returns(200) {NamedQueryId: str?}

@endpoint POST /
@required {WorkGroup: str, Name: str}
@optional {ClientRequestToken: str}
@returns(200) {NotebookId: str?}

@endpoint POST /
@required {StatementName: str, WorkGroup: str, QueryStatement: str}
@optional {Description: str}

@endpoint POST /
@required {SessionId: str}
@returns(200) {NotebookUrl: str, AuthToken: str, AuthTokenExpirationTime: int(i64)}

@endpoint POST /
@required {Name: str}
@optional {Configuration: WorkGroupConfiguration, Description: str, Tags: [Tag]}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {NamedQueryId: str}

@endpoint POST /
@required {NotebookId: str}

@endpoint POST /
@required {StatementName: str, WorkGroup: str}

@endpoint POST /
@required {WorkGroup: str}
@optional {RecursiveDeleteOption: bool}

@endpoint POST /
@required {NotebookId: str}
@returns(200) {NotebookMetadata: NotebookMetadata?{NotebookId: str?, Name: str?, WorkGroup: str?, CreationTime: str(timestamp)?, Type: str?, LastModifiedTime: str(timestamp)?}, Payload: str?}

@endpoint POST /
@required {CalculationExecutionId: str}
@returns(200) {CalculationExecutionId: str?, SessionId: str?, Description: str?, WorkingDirectory: str?, Status: CalculationStatus?{SubmissionDateTime: str(timestamp)?, CompletionDateTime: str(timestamp)?, State: str?, StateChangeReason: str?}, Statistics: CalculationStatistics?{DpuExecutionInMillis: int(i64)?, Progress: str?}, Result: CalculationResult?{StdOutS3Uri: str?, StdErrorS3Uri: str?, ResultS3Uri: str?, ResultType: str?}}

@endpoint POST /
@required {CalculationExecutionId: str}
@returns(200) {CodeBlock: str?}

@endpoint POST /
@required {CalculationExecutionId: str}
@returns(200) {Status: CalculationStatus?{SubmissionDateTime: str(timestamp)?, CompletionDateTime: str(timestamp)?, State: str?, StateChangeReason: str?}, Statistics: CalculationStatistics?{DpuExecutionInMillis: int(i64)?, Progress: str?}}

@endpoint POST /
@required {CapacityReservationName: str}
@returns(200) {CapacityAssignmentConfiguration: CapacityAssignmentConfiguration{CapacityReservationName: str?, CapacityAssignments: [CapacityAssignment]?}}

@endpoint POST /
@required {Name: str}
@returns(200) {CapacityReservation: CapacityReservation{Name: str, Status: str, TargetDpus: int, AllocatedDpus: int, LastAllocation: CapacityAllocation?{Status: str, StatusMessage: str?, RequestTime: str(timestamp), RequestCompletionTime: str(timestamp)?}, LastSuccessfulAllocationTime: str(timestamp)?, CreationTime: str(timestamp)}}

@endpoint POST /
@required {Name: str}
@optional {WorkGroup: str}
@returns(200) {DataCatalog: DataCatalog?{Name: str, Description: str?, Type: str, Parameters: map<str,str>?}}

@endpoint POST /
@required {CatalogName: str, DatabaseName: str}
@optional {WorkGroup: str}
@returns(200) {Database: Database?{Name: str, Description: str?, Parameters: map<str,str>?}}

@endpoint POST /
@required {NamedQueryId: str}
@returns(200) {NamedQuery: NamedQuery?{Name: str, Description: str?, Database: str, QueryString: str, NamedQueryId: str?, WorkGroup: str?}}

@endpoint POST /
@required {NotebookId: str}
@returns(200) {NotebookMetadata: NotebookMetadata?{NotebookId: str?, Name: str?, WorkGroup: str?, CreationTime: str(timestamp)?, Type: str?, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {StatementName: str, WorkGroup: str}
@returns(200) {PreparedStatement: PreparedStatement?{StatementName: str?, QueryStatement: str?, WorkGroupName: str?, Description: str?, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {QueryExecutionId: str}
@returns(200) {QueryExecution: QueryExecution?{QueryExecutionId: str?, Query: str?, StatementType: str?, ResultConfiguration: ResultConfiguration?{OutputLocation: str?, EncryptionConfiguration: EncryptionConfiguration?{EncryptionOption: str, KmsKey: str?}, ExpectedBucketOwner: str?, AclConfiguration: AclConfiguration?{S3AclOption: str}}, ResultReuseConfiguration: ResultReuseConfiguration?{ResultReuseByAgeConfiguration: ResultReuseByAgeConfiguration?{Enabled: bool, MaxAgeInMinutes: int?}}, QueryExecutionContext: QueryExecutionContext?{Database: str?, Catalog: str?}, Status: QueryExecutionStatus?{State: str?, StateChangeReason: str?, SubmissionDateTime: str(timestamp)?, CompletionDateTime: str(timestamp)?, AthenaError: AthenaError?{ErrorCategory: int?, ErrorType: int?, Retryable: bool?, ErrorMessage: str?}}, Statistics: QueryExecutionStatistics?{EngineExecutionTimeInMillis: int(i64)?, DataScannedInBytes: int(i64)?, DataManifestLocation: str?, TotalExecutionTimeInMillis: int(i64)?, QueryQueueTimeInMillis: int(i64)?, ServicePreProcessingTimeInMillis: int(i64)?, QueryPlanningTimeInMillis: int(i64)?, ServiceProcessingTimeInMillis: int(i64)?, ResultReuseInformation: ResultReuseInformation?{ReusedPreviousResult: bool}}, WorkGroup: str?, EngineVersion: EngineVersion?{SelectedEngineVersion: str?, EffectiveEngineVersion: str?}, ExecutionParameters: [str]?, SubstatementType: str?, QueryResultsS3AccessGrantsConfiguration: QueryResultsS3AccessGrantsConfiguration?{EnableS3AccessGrants: bool, CreateUserLevelPrefix: bool?, AuthenticationType: str}}}

@endpoint POST /
@required {QueryExecutionId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {UpdateCount: int(i64)?, ResultSet: ResultSet?{Rows: [Row]?, ResultSetMetadata: ResultSetMetadata?{ColumnInfo: [ColumnInfo]?}}, NextToken: str?}

@endpoint POST /
@required {QueryExecutionId: str}
@returns(200) {QueryRuntimeStatistics: QueryRuntimeStatistics?{Timeline: QueryRuntimeStatisticsTimeline?{QueryQueueTimeInMillis: int(i64)?, ServicePreProcessingTimeInMillis: int(i64)?, QueryPlanningTimeInMillis: int(i64)?, EngineExecutionTimeInMillis: int(i64)?, ServiceProcessingTimeInMillis: int(i64)?, TotalExecutionTimeInMillis: int(i64)?}, Rows: QueryRuntimeStatisticsRows?{InputRows: int(i64)?, InputBytes: int(i64)?, OutputBytes: int(i64)?, OutputRows: int(i64)?}, OutputStage: QueryStage?{StageId: int(i64)?, State: str?, OutputBytes: int(i64)?, OutputRows: int(i64)?, InputBytes: int(i64)?, InputRows: int(i64)?, ExecutionTime: int(i64)?, QueryStagePlan: QueryStagePlanNode?{Name: str?, Identifier: str?, Children: [QueryStagePlanNode]?, RemoteSources: [str]?}, SubStages: [QueryStage]?}}}

@endpoint POST /
@required {SessionId: str}
@returns(200) {SessionId: str?, Description: str?, WorkGroup: str?, EngineVersion: str?, EngineConfiguration: EngineConfiguration?{CoordinatorDpuSize: int?, MaxConcurrentDpus: int, DefaultExecutorDpuSize: int?, AdditionalConfigs: map<str,str>?, SparkProperties: map<str,str>?}, NotebookVersion: str?, SessionConfiguration: SessionConfiguration?{ExecutionRole: str?, WorkingDirectory: str?, IdleTimeoutSeconds: int(i64)?, EncryptionConfiguration: EncryptionConfiguration?{EncryptionOption: str, KmsKey: str?}}, Status: SessionStatus?{StartDateTime: str(timestamp)?, LastModifiedDateTime: str(timestamp)?, EndDateTime: str(timestamp)?, IdleSinceDateTime: str(timestamp)?, State: str?, StateChangeReason: str?}, Statistics: SessionStatistics?{DpuExecutionInMillis: int(i64)?}}

@endpoint POST /
@required {SessionId: str}
@returns(200) {SessionId: str?, Status: SessionStatus?{StartDateTime: str(timestamp)?, LastModifiedDateTime: str(timestamp)?, EndDateTime: str(timestamp)?, IdleSinceDateTime: str(timestamp)?, State: str?, StateChangeReason: str?}}

@endpoint POST /
@required {CatalogName: str, DatabaseName: str, TableName: str}
@optional {WorkGroup: str}
@returns(200) {TableMetadata: TableMetadata?{Name: str, CreateTime: str(timestamp)?, LastAccessTime: str(timestamp)?, TableType: str?, Columns: [Column]?, PartitionKeys: [Column]?, Parameters: map<str,str>?}}

@endpoint POST /
@required {WorkGroup: str}
@returns(200) {WorkGroup: WorkGroup?{Name: str, State: str?, Configuration: WorkGroupConfiguration?{ResultConfiguration: ResultConfiguration?{OutputLocation: str?, EncryptionConfiguration: EncryptionConfiguration?, ExpectedBucketOwner: str?, AclConfiguration: AclConfiguration?}, EnforceWorkGroupConfiguration: bool?, PublishCloudWatchMetricsEnabled: bool?, BytesScannedCutoffPerQuery: int(i64)?, RequesterPaysEnabled: bool?, EngineVersion: EngineVersion?{SelectedEngineVersion: str?, EffectiveEngineVersion: str?}, AdditionalConfiguration: str?, ExecutionRole: str?, CustomerContentEncryptionConfiguration: CustomerContentEncryptionConfiguration?{KmsKey: str}, EnableMinimumEncryptionConfiguration: bool?, IdentityCenterConfiguration: IdentityCenterConfiguration?{EnableIdentityCenter: bool?, IdentityCenterInstanceArn: str?}, QueryResultsS3AccessGrantsConfiguration: QueryResultsS3AccessGrantsConfiguration?{EnableS3AccessGrants: bool, CreateUserLevelPrefix: bool?, AuthenticationType: str}}, Description: str?, CreationTime: str(timestamp)?, IdentityCenterApplicationArn: str?}}

@endpoint POST /
@required {WorkGroup: str, Name: str, Type: str}
@optional {Payload: str, NotebookS3LocationUri: str, ClientRequestToken: str}
@returns(200) {NotebookId: str?}

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

@endpoint POST /
@required {SessionId: str}
@optional {StateFilter: str, MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Calculations: [CalculationSummary]?}

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

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

@endpoint POST /
@required {CatalogName: str}
@optional {NextToken: str, MaxResults: int, WorkGroup: str}
@returns(200) {DatabaseList: [Database]?, NextToken: str?}

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

@endpoint POST /
@required {SessionId: str}
@optional {ExecutorStateFilter: str, MaxResults: int, NextToken: str}
@returns(200) {SessionId: str, NextToken: str?, ExecutorsSummary: [ExecutorsSummary]?}

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

@endpoint POST /
@required {WorkGroup: str}
@optional {Filters: FilterDefinition, NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, NotebookMetadataList: [NotebookMetadata]?}

@endpoint POST /
@required {NotebookId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NotebookSessionsList: [NotebookSessionSummary], NextToken: str?}

@endpoint POST /
@required {WorkGroup: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {PreparedStatements: [PreparedStatementSummary]?, NextToken: str?}

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

@endpoint POST /
@required {WorkGroup: str}
@optional {StateFilter: str, MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Sessions: [SessionSummary]?}

@endpoint POST /
@required {CatalogName: str, DatabaseName: str}
@optional {Expression: str, NextToken: str, MaxResults: int, WorkGroup: str}
@returns(200) {TableMetadataList: [TableMetadata]?, NextToken: str?}

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

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

@endpoint POST /
@required {CapacityReservationName: str, CapacityAssignments: [CapacityAssignment]}

@endpoint POST /
@required {SessionId: str}
@optional {Description: str, CalculationConfiguration: CalculationConfiguration, CodeBlock: str, ClientRequestToken: str}
@returns(200) {CalculationExecutionId: str?, State: str?}

@endpoint POST /
@required {QueryString: str}
@optional {ClientRequestToken: str, QueryExecutionContext: QueryExecutionContext, ResultConfiguration: ResultConfiguration, WorkGroup: str, ExecutionParameters: [str], ResultReuseConfiguration: ResultReuseConfiguration}
@returns(200) {QueryExecutionId: str?}

@endpoint POST /
@required {WorkGroup: str, EngineConfiguration: EngineConfiguration}
@optional {Description: str, NotebookVersion: str, SessionIdleTimeoutInMinutes: int, ClientRequestToken: str}
@returns(200) {SessionId: str?, State: str?}

@endpoint POST /
@required {CalculationExecutionId: str}
@returns(200) {State: str?}

@endpoint POST /
@required {QueryExecutionId: str}

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

@endpoint POST /
@required {SessionId: str}
@returns(200) {State: str?}

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

@endpoint POST /
@required {TargetDpus: int, Name: str}

@endpoint POST /
@required {Name: str, Type: str}
@optional {Description: str, Parameters: map<str,str>}

@endpoint POST /
@required {NamedQueryId: str, Name: str, QueryString: str}
@optional {Description: str}

@endpoint POST /
@required {NotebookId: str, Payload: str, Type: str}
@optional {SessionId: str, ClientRequestToken: str}

@endpoint POST /
@required {NotebookId: str, Name: str}
@optional {ClientRequestToken: str}

@endpoint POST /
@required {StatementName: str, WorkGroup: str, QueryStatement: str}
@optional {Description: str}

@endpoint POST /
@required {WorkGroup: str}
@optional {Description: str, ConfigurationUpdates: WorkGroupConfigurationUpdates, State: str}

@end
