@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 /
@desc Creates a data store that can ingest and export FHIR formatted data.
@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 /
@desc Deletes a data store.
@required {DatastoreId: str}
@returns(200) {DatastoreId: str, DatastoreArn: str, DatastoreStatus: str, DatastoreEndpoint: str}

@endpoint POST /
@desc Gets the properties associated with the FHIR data store, including the data store ID, data store ARN, data store name, data store status, when the data store was created, data store type version, and the data store's endpoint.
@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 /
@desc Displays the properties of a FHIR export job, including the ID, ARN, name, and the status of the job.
@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 /
@desc Displays the properties of a FHIR import job, including the ID, ARN, name, and the status of the job.
@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 /
@desc Lists all FHIR data stores that are in the user’s account, regardless of data store status.
@optional {Filter: DatastoreFilter, NextToken: str, MaxResults: int}
@returns(200) {DatastorePropertiesList: [DatastoreProperties], NextToken: str?}

@endpoint POST /
@desc Lists all FHIR export jobs associated with an account and their statuses.
@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 /
@desc Lists all FHIR import jobs associated with an account and their statuses.
@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 /
@desc Returns a list of all existing tags associated with a data store.
@required {ResourceARN: str}
@returns(200) {Tags: [Tag]?}

@endpoint POST /
@desc Begins a FHIR export job.
@required {OutputDataConfig: OutputDataConfig, DatastoreId: str, DataAccessRoleArn: str, ClientToken: str}
@optional {JobName: str}
@returns(200) {JobId: str, JobStatus: str, DatastoreId: str?}

@endpoint POST /
@desc Begins a FHIR Import job.
@required {InputDataConfig: InputDataConfig, JobOutputDataConfig: OutputDataConfig, DatastoreId: str, DataAccessRoleArn: str, ClientToken: str}
@optional {JobName: str}
@returns(200) {JobId: str, JobStatus: str, DatastoreId: str?}

@endpoint POST /
@desc Adds a user specified key and value tag to a data store.
@required {ResourceARN: str, Tags: [Tag]}

@endpoint POST /
@desc Removes tags from a data store.
@required {ResourceARN: str, TagKeys: [str]}

@end
