AWS HealthLake Datastore API

Operations for creating, describing, listing, and deleting FHIR R4 data stores

OpenAPI Specification

aws-healthlake-datastore-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Amazon HealthLake Datastore 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: Datastore
  description: Operations for creating, describing, listing, and deleting FHIR R4 data stores
paths:
  /#X-Amz-Target=HealthLake.CreateFHIRDatastore:
    post:
      operationId: createFHIRDatastore
      summary: CreateFHIRDatastore
      description: <p>Creates a data store that can ingest and export FHIR formatted data.</p>
      tags:
      - Datastore
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.CreateFHIRDatastore
        description: 'The AWS service action target: HealthLake.CreateFHIRDatastore'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/CreateFHIRDatastoreResponse'
        '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/CreateFHIRDatastoreRequest'
  /#X-Amz-Target=HealthLake.DeleteFHIRDatastore:
    post:
      operationId: deleteFHIRDatastore
      summary: DeleteFHIRDatastore
      description: <p>Deletes a data store. </p>
      tags:
      - Datastore
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.DeleteFHIRDatastore
        description: 'The AWS service action target: HealthLake.DeleteFHIRDatastore'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/DeleteFHIRDatastoreResponse'
        '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/DeleteFHIRDatastoreRequest'
  /#X-Amz-Target=HealthLake.DescribeFHIRDatastore:
    post:
      operationId: describeFHIRDatastore
      summary: DescribeFHIRDatastore
      description: <p>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.</p>
      tags:
      - Datastore
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.DescribeFHIRDatastore
        description: 'The AWS service action target: HealthLake.DescribeFHIRDatastore'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/DescribeFHIRDatastoreResponse'
        '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/DescribeFHIRDatastoreRequest'
  /#X-Amz-Target=HealthLake.ListFHIRDatastores:
    post:
      operationId: listFHIRDatastores
      summary: ListFHIRDatastores
      description: <p>Lists all FHIR data stores that are in the user’s account, regardless of data store status.</p>
      tags:
      - Datastore
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - HealthLake.ListFHIRDatastores
        description: 'The AWS service action target: HealthLake.ListFHIRDatastores'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ListFHIRDatastoresResponse'
        '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/ListFHIRDatastoresRequest'
components:
  schemas:
    ListFHIRDatastoresResponse:
      type: object
      properties:
        DatastorePropertiesList:
          type: array
          items:
            type: object
            properties:
              DatastoreId:
                type: string
                minLength: 1
                maxLength: 32
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
              DatastoreArn:
                type: string
                pattern: ^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:healthlake:[a-zA-Z0-9-]+:[0-9]{12}:datastore/.+?
              DatastoreName:
                type: string
                minLength: 1
                maxLength: 256
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
              DatastoreStatus:
                type: string
                enum:
                - CREATING
                - ACTIVE
                - DELETING
                - DELETED
                - CREATE_FAILED
              CreatedAt:
                type: string
                format: date-time
              DatastoreTypeVersion:
                type: string
                enum:
                - R4
              DatastoreEndpoint:
                type: string
                maxLength: 10000
                pattern: '[\P{M}\p{M}]{0,10000}'
              SseConfiguration:
                type: object
                properties:
                  KmsEncryptionConfig:
                    type: object
                    properties:
                      CmkType:
                        type: string
                        enum:
                        - CUSTOMER_MANAGED_KMS_KEY
                        - AWS_OWNED_KMS_KEY
                      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:
                    - CmkType
                required:
                - KmsEncryptionConfig
              PreloadDataConfig:
                type: object
                properties:
                  PreloadDataType:
                    type: string
                    enum:
                    - SYNTHEA
                required:
                - PreloadDataType
              IdentityProviderConfiguration:
                type: object
                properties:
                  AuthorizationStrategy:
                    type: string
                    enum:
                    - SMART_ON_FHIR_V1
                    - AWS_AUTH
                  FineGrainedAuthorizationEnabled:
                    type: boolean
                  Metadata:
                    type: string
                  IdpLambdaArn:
                    type: string
                    minLength: 49
                    maxLength: 256
                    pattern: arn:aws:lambda:[a-z]{2}-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9\-_\.]+(:(\$LATEST|[a-zA-Z0-9\-_]+))?
                required:
                - AuthorizationStrategy
              ErrorCause:
                type: object
                properties:
                  ErrorMessage:
                    type: string
                    minLength: 1
                    maxLength: 4096
                  ErrorCategory:
                    type: string
                    enum:
                    - RETRYABLE_ERROR
                    - NON_RETRYABLE_ERROR
            required:
            - DatastoreId
            - DatastoreArn
            - DatastoreStatus
            - DatastoreTypeVersion
            - DatastoreEndpoint
        NextToken:
          type: string
          maxLength: 8192
          pattern: \p{ASCII}{0,8192}
      required:
      - DatastorePropertiesList
    ListFHIRDatastoresRequest:
      type: object
      properties:
        Filter:
          type: object
          properties:
            DatastoreName:
              type: string
              minLength: 1
              maxLength: 256
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            DatastoreStatus:
              type: string
              enum:
              - CREATING
              - ACTIVE
              - DELETING
              - DELETED
              - CREATE_FAILED
            CreatedBefore:
              type: string
              format: date-time
            CreatedAfter:
              type: string
              format: date-time
        NextToken:
          type: string
          maxLength: 8192
          pattern: \p{ASCII}{0,8192}
        MaxResults:
          type: integer
          format: int32
          minimum: 1
          maximum: 500
    DeleteFHIRDatastoreRequest:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
      required:
      - DatastoreId
    DescribeFHIRDatastoreResponse:
      type: object
      properties:
        DatastoreProperties:
          type: object
          properties:
            DatastoreId:
              type: string
              minLength: 1
              maxLength: 32
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            DatastoreArn:
              type: string
              pattern: ^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:healthlake:[a-zA-Z0-9-]+:[0-9]{12}:datastore/.+?
            DatastoreName:
              type: string
              minLength: 1
              maxLength: 256
              pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
            DatastoreStatus:
              type: string
              enum:
              - CREATING
              - ACTIVE
              - DELETING
              - DELETED
              - CREATE_FAILED
            CreatedAt:
              type: string
              format: date-time
            DatastoreTypeVersion:
              type: string
              enum:
              - R4
            DatastoreEndpoint:
              type: string
              maxLength: 10000
              pattern: '[\P{M}\p{M}]{0,10000}'
            SseConfiguration:
              type: object
              properties:
                KmsEncryptionConfig:
                  type: object
                  properties:
                    CmkType:
                      type: string
                      enum:
                      - CUSTOMER_MANAGED_KMS_KEY
                      - AWS_OWNED_KMS_KEY
                    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:
                  - CmkType
              required:
              - KmsEncryptionConfig
            PreloadDataConfig:
              type: object
              properties:
                PreloadDataType:
                  type: string
                  enum:
                  - SYNTHEA
              required:
              - PreloadDataType
            IdentityProviderConfiguration:
              type: object
              properties:
                AuthorizationStrategy:
                  type: string
                  enum:
                  - SMART_ON_FHIR_V1
                  - AWS_AUTH
                FineGrainedAuthorizationEnabled:
                  type: boolean
                Metadata:
                  type: string
                IdpLambdaArn:
                  type: string
                  minLength: 49
                  maxLength: 256
                  pattern: arn:aws:lambda:[a-z]{2}-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9\-_\.]+(:(\$LATEST|[a-zA-Z0-9\-_]+))?
              required:
              - AuthorizationStrategy
            ErrorCause:
              type: object
              properties:
                ErrorMessage:
                  type: string
                  minLength: 1
                  maxLength: 4096
                ErrorCategory:
                  type: string
                  enum:
                  - RETRYABLE_ERROR
                  - NON_RETRYABLE_ERROR
          required:
          - DatastoreId
          - DatastoreArn
          - DatastoreStatus
          - DatastoreTypeVersion
          - DatastoreEndpoint
      required:
      - DatastoreProperties
    DeleteFHIRDatastoreResponse:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        DatastoreArn:
          type: string
          pattern: ^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:healthlake:[a-zA-Z0-9-]+:[0-9]{12}:datastore/.+?
        DatastoreStatus:
          type: string
          enum:
          - CREATING
          - ACTIVE
          - DELETING
          - DELETED
          - CREATE_FAILED
        DatastoreEndpoint:
          type: string
          minLength: 1
          maxLength: 5000
          pattern: '[\P{M}\p{M}]{1,5000}'
      required:
      - DatastoreId
      - DatastoreArn
      - DatastoreStatus
      - DatastoreEndpoint
    CreateFHIRDatastoreRequest:
      type: object
      properties:
        DatastoreName:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        DatastoreTypeVersion:
          type: string
          enum:
          - R4
        SseConfiguration:
          type: object
          properties:
            KmsEncryptionConfig:
              type: object
              properties:
                CmkType:
                  type: string
                  enum:
                  - CUSTOMER_MANAGED_KMS_KEY
                  - AWS_OWNED_KMS_KEY
                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:
              - CmkType
          required:
          - KmsEncryptionConfig
        PreloadDataConfig:
          type: object
          properties:
            PreloadDataType:
              type: string
              enum:
              - SYNTHEA
          required:
          - PreloadDataType
        ClientToken:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9-]+$
        Tags:
          type: array
          items:
            type: object
            properties:
              Key:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$
              Value:
                type: string
                minLength: 0
                maxLength: 256
                pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$
            required:
            - Key
            - Value
        IdentityProviderConfiguration:
          type: object
          properties:
            AuthorizationStrategy:
              type: string
              enum:
              - SMART_ON_FHIR_V1
              - AWS_AUTH
            FineGrainedAuthorizationEnabled:
              type: boolean
            Metadata:
              type: string
            IdpLambdaArn:
              type: string
              minLength: 49
              maxLength: 256
              pattern: arn:aws:lambda:[a-z]{2}-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9\-_\.]+(:(\$LATEST|[a-zA-Z0-9\-_]+))?
          required:
          - AuthorizationStrategy
      required:
      - DatastoreTypeVersion
    CreateFHIRDatastoreResponse:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
        DatastoreArn:
          type: string
          pattern: ^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:healthlake:[a-zA-Z0-9-]+:[0-9]{12}:datastore/.+?
        DatastoreStatus:
          type: string
          enum:
          - CREATING
          - ACTIVE
          - DELETING
          - DELETED
          - CREATE_FAILED
        DatastoreEndpoint:
          type: string
          minLength: 1
          maxLength: 5000
          pattern: '[\P{M}\p{M}]{1,5000}'
      required:
      - DatastoreId
      - DatastoreArn
      - DatastoreStatus
      - DatastoreEndpoint
    DescribeFHIRDatastoreRequest:
      type: object
      properties:
        DatastoreId:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^([\p{L}\p{Z}\p{N}_.:/=+\-%@]*)$
      required:
      - DatastoreId
  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