@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon HealthLake
@version 2017-07-01
@auth AWS SigV4
@endpoints 13
@toc root(13)

@endpoint POST /
@required {DatastoreTypeVersion: str}
@optional {DatastoreName: str, SseConfiguration: SseConfiguration, PreloadDataConfig: PreloadDataConfig, ClientToken: str, Tags: [Tag], IdentityProviderConfiguration: IdentityProviderConfiguration}
@returns(200) {DatastoreId: str, DatastoreArn: str, DatastoreStatus: str, DatastoreEndpoint: str}

@endpoint POST /
@required {DatastoreId: str}
@returns(200) {DatastoreId: str, DatastoreArn: str, DatastoreStatus: str, DatastoreEndpoint: str}

@endpoint POST /
@required {DatastoreId: str}
@returns(200) {DatastoreProperties: DatastoreProperties{DatastoreId: str, DatastoreArn: str, DatastoreName: str?, DatastoreStatus: str, CreatedAt: str(timestamp)?, DatastoreTypeVersion: str, DatastoreEndpoint: str, SseConfiguration: SseConfiguration?{KmsEncryptionConfig: KmsEncryptionConfig{CmkType: str, KmsKeyId: str?}}, PreloadDataConfig: PreloadDataConfig?{PreloadDataType: str}, IdentityProviderConfiguration: IdentityProviderConfiguration?{AuthorizationStrategy: str, FineGrainedAuthorizationEnabled: bool?, Metadata: str?, IdpLambdaArn: str?}, ErrorCause: ErrorCause?{ErrorMessage: str?, ErrorCategory: str?}}}

@endpoint POST /
@required {DatastoreId: str, JobId: str}
@returns(200) {ExportJobProperties: ExportJobProperties{JobId: str, JobName: str?, JobStatus: str, SubmitTime: str(timestamp), EndTime: str(timestamp)?, DatastoreId: str, OutputDataConfig: OutputDataConfig{S3Configuration: S3Configuration?{S3Uri: str, KmsKeyId: str}}, DataAccessRoleArn: str?, Message: str?}}

@endpoint POST /
@required {DatastoreId: str, JobId: str}
@returns(200) {ImportJobProperties: ImportJobProperties{JobId: str, JobName: str?, JobStatus: str, SubmitTime: str(timestamp), EndTime: str(timestamp)?, DatastoreId: str, InputDataConfig: InputDataConfig{S3Uri: str?}, JobOutputDataConfig: OutputDataConfig?{S3Configuration: S3Configuration?{S3Uri: str, KmsKeyId: str}}, JobProgressReport: JobProgressReport?{TotalNumberOfScannedFiles: int(i64)?, TotalSizeOfScannedFilesInMB: num(f64)?, TotalNumberOfImportedFiles: int(i64)?, TotalNumberOfResourcesScanned: int(i64)?, TotalNumberOfResourcesImported: int(i64)?, TotalNumberOfResourcesWithCustomerError: int(i64)?, TotalNumberOfFilesReadWithCustomerError: int(i64)?, Throughput: num(f64)?}, DataAccessRoleArn: str?, Message: str?}}

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

@endpoint POST /
@required {DatastoreId: str}
@optional {NextToken: str, MaxResults: int, JobName: str, JobStatus: str, SubmittedBefore: str(timestamp), SubmittedAfter: str(timestamp)}
@returns(200) {ExportJobPropertiesList: [ExportJobProperties], NextToken: str?}

@endpoint POST /
@required {DatastoreId: str}
@optional {NextToken: str, MaxResults: int, JobName: str, JobStatus: str, SubmittedBefore: str(timestamp), SubmittedAfter: str(timestamp)}
@returns(200) {ImportJobPropertiesList: [ImportJobProperties], NextToken: str?}

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

@endpoint POST /
@required {OutputDataConfig: OutputDataConfig, DatastoreId: str, DataAccessRoleArn: str, ClientToken: str}
@optional {JobName: str}
@returns(200) {JobId: str, JobStatus: str, DatastoreId: str?}

@endpoint POST /
@required {InputDataConfig: InputDataConfig, JobOutputDataConfig: OutputDataConfig, DatastoreId: str, DataAccessRoleArn: str, ClientToken: str}
@optional {JobName: str}
@returns(200) {JobId: str, JobStatus: str, DatastoreId: str?}

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

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

@end
