AWS HealthLake Export API

Asynchronous bulk export operations for exporting FHIR resources to Amazon S3

OpenAPI Specification

aws-healthlake-export-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Amazon HealthLake Datastore Export API
  description: Amazon HealthLake is a HIPAA-eligible, FHIR R4-compliant managed service for importing, transforming, storing, and querying health data from patients and clinical systems. It provides a transactional FHIR server with bulk import/export, medical NLP for unstructured data extraction, SMART on FHIR authorization, and integration with AWS analytics services.
  version: '2017-07-01'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://aws.amazon.com/service-terms/
servers:
- url: https://healthlake.{region}.amazonaws.com
  description: AWS HealthLake regional endpoint
  variables:
    region:
      default: us-east-1
      description: AWS region identifier
      enum:
      - us-east-1
      - us-east-2
      - us-west-2
      - ap-southeast-2
      - eu-west-1
security:
- aws_v4: []
tags:
- name: Export
  description: Asynchronous bulk export operations for exporting FHIR resources to Amazon S3
paths:
  /#X-Amz-Target=HealthLake.DescribeFHIRExportJob:
    post:
      operationId: describeFHIRExportJob
      summary: DescribeFHIRExportJob
      description: <p>Displays the properties of a FHIR export job, including the ID, ARN, name, and the status of the job.</p>
      tags:
      - Export
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.DescribeFHIRExportJob
        description: 'The AWS service action target: HealthLake.DescribeFHIRExportJob'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/DescribeFHIRExportJobResponse'
        '400':
          description: Client error (validation, throttling, conflict, access denied)
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
        '500':
          description: Internal server error
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/DescribeFHIRExportJobRequest'
  /#X-Amz-Target=HealthLake.ListFHIRExportJobs:
    post:
      operationId: listFHIRExportJobs
      summary: ListFHIRExportJobs
      description: <p> Lists all FHIR export jobs associated with an account and their statuses. </p>
      tags:
      - Export
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.ListFHIRExportJobs
        description: 'The AWS service action target: HealthLake.ListFHIRExportJobs'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ListFHIRExportJobsResponse'
        '400':
          description: Client error (validation, throttling, conflict, access denied)
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
        '500':
          description: Internal server error
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/ListFHIRExportJobsRequest'
  /#X-Amz-Target=HealthLake.StartFHIRExportJob:
    post:
      operationId: startFHIRExportJob
      summary: StartFHIRExportJob
      description: <p>Begins a FHIR export job.</p>
      tags:
      - Export
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.StartFHIRExportJob
        description: 'The AWS service action target: HealthLake.StartFHIRExportJob'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/StartFHIRExportJobResponse'
        '400':
          description: Client error (validation, throttling, conflict, access denied)
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
        '500':
          description: Internal server error
          content:
            application/x-amz-json-1.0:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Exception type
                  Message:
                    type: string
                    description: Error message
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/StartFHIRExportJobRequest'
components:
  schemas:
    StartFHIRExportJobRequest:
      type: object
      properties:
        JobName:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        OutputDataConfig:
          type: object
          properties:
            S3Configuration:
              type: object
              properties:
                S3Uri:
                  type: string
                  maxLength: 1024
                  pattern: s3://[a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9](/.*)?
                KmsKeyId:
                  type: string
                  minLength: 1
                  maxLength: 400
                  pattern: (arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\d:)?(\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))
              required:
              - S3Uri
              - KmsKeyId
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        DataAccessRoleArn:
          type: string
          minLength: 20
          maxLength: 2048
          pattern: arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+
        ClientToken:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9-]+$
      required:
      - OutputDataConfig
      - DatastoreId
      - DataAccessRoleArn
      - ClientToken
    StartFHIRExportJobResponse:
      type: object
      properties:
        JobId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        JobStatus:
          type: string
          enum:
          - SUBMITTED
          - IN_PROGRESS
          - COMPLETED_WITH_ERRORS
          - COMPLETED
          - FAILED
          - CANCEL_SUBMITTED
          - CANCEL_IN_PROGRESS
          - CANCEL_COMPLETED
          - CANCEL_FAILED
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
      required:
      - JobId
      - JobStatus
    ListFHIRExportJobsResponse:
      type: object
      properties:
        ExportJobPropertiesList:
          type: array
          items:
            type: object
            properties:
              JobId:
                type: string
                minLength: 1
                maxLength: 32
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
              JobName:
                type: string
                minLength: 1
                maxLength: 64
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
              JobStatus:
                type: string
                enum:
                - SUBMITTED
                - IN_PROGRESS
                - COMPLETED_WITH_ERRORS
                - COMPLETED
                - FAILED
                - CANCEL_SUBMITTED
                - CANCEL_IN_PROGRESS
                - CANCEL_COMPLETED
                - CANCEL_FAILED
              SubmitTime:
                type: string
                format: date-time
              EndTime:
                type: string
                format: date-time
              DatastoreId:
                type: string
                minLength: 1
                maxLength: 32
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
              OutputDataConfig:
                type: object
                properties:
                  S3Configuration:
                    type: object
                    properties:
                      S3Uri:
                        type: string
                        maxLength: 1024
                        pattern: s3://[a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9](/.*)?
                      KmsKeyId:
                        type: string
                        minLength: 1
                        maxLength: 400
                        pattern: (arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\d:)?(\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))
                    required:
                    - S3Uri
                    - KmsKeyId
              DataAccessRoleArn:
                type: string
                minLength: 20
                maxLength: 2048
                pattern: arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+
              Message:
                type: string
                minLength: 1
                maxLength: 2048
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            required:
            - JobId
            - JobStatus
            - SubmitTime
            - DatastoreId
            - OutputDataConfig
        NextToken:
          type: string
          maxLength: 8192
          pattern: \p{ASCII}{0,8192}
      required:
      - ExportJobPropertiesList
    DescribeFHIRExportJobRequest:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        JobId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
      required:
      - DatastoreId
      - JobId
    ListFHIRExportJobsRequest:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        NextToken:
          type: string
          maxLength: 8192
          pattern: \p{ASCII}{0,8192}
        MaxResults:
          type: integer
          format: int32
          minimum: 1
          maximum: 500
        JobName:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        JobStatus:
          type: string
          enum:
          - SUBMITTED
          - IN_PROGRESS
          - COMPLETED_WITH_ERRORS
          - COMPLETED
          - FAILED
          - CANCEL_SUBMITTED
          - CANCEL_IN_PROGRESS
          - CANCEL_COMPLETED
          - CANCEL_FAILED
        SubmittedBefore:
          type: string
          format: date-time
        SubmittedAfter:
          type: string
          format: date-time
      required:
      - DatastoreId
    DescribeFHIRExportJobResponse:
      type: object
      properties:
        ExportJobProperties:
          type: object
          properties:
            JobId:
              type: string
              minLength: 1
              maxLength: 32
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            JobName:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            JobStatus:
              type: string
              enum:
              - SUBMITTED
              - IN_PROGRESS
              - COMPLETED_WITH_ERRORS
              - COMPLETED
              - FAILED
              - CANCEL_SUBMITTED
              - CANCEL_IN_PROGRESS
              - CANCEL_COMPLETED
              - CANCEL_FAILED
            SubmitTime:
              type: string
              format: date-time
            EndTime:
              type: string
              format: date-time
            DatastoreId:
              type: string
              minLength: 1
              maxLength: 32
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            OutputDataConfig:
              type: object
              properties:
                S3Configuration:
                  type: object
                  properties:
                    S3Uri:
                      type: string
                      maxLength: 1024
                      pattern: s3://[a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9](/.*)?
                    KmsKeyId:
                      type: string
                      minLength: 1
                      maxLength: 400
                      pattern: (arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\d:)?(\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))
                  required:
                  - S3Uri
                  - KmsKeyId
            DataAccessRoleArn:
              type: string
              minLength: 20
              maxLength: 2048
              pattern: arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+
            Message:
              type: string
              minLength: 1
              maxLength: 2048
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
          required:
          - JobId
          - JobStatus
          - SubmitTime
          - DatastoreId
          - OutputDataConfig
      required:
      - ExportJobProperties
  securitySchemes:
    aws_v4:
      type: apiKey
      in: header
      name: Authorization
      description: 'AWS Signature Version 4. Sign requests with your AWS access key and secret key. See: https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html'
externalDocs:
  description: Amazon HealthLake API Reference
  url: https://docs.aws.amazon.com/healthlake/latest/APIReference/Welcome.html