Amazon HealthImaging · Arazzo Workflow

Amazon HealthImaging Provision Data Store

Version 1.0.0

Create a data store and poll until it becomes ACTIVE before use.

1 workflow 1 source API 1 provider
View Spec View on GitHub HealthcareHIPAAMachine LearningMedical ImagingDICOMArazzoWorkflows

Provider

amazon-healthimaging

Workflows

provision-datastore
Create a HealthImaging data store and wait until it is ACTIVE.
Creates a data store with the supplied name and idempotency token, then polls the data store properties until the data store reaches the ACTIVE state or fails provisioning.
3 steps inputs: clientToken, datastoreName, kmsKeyArn outputs: datastoreArn, datastoreId, datastoreStatus
1
createDatastore
CreateDatastore
Create the data store. The response returns the new data store identifier and its initial status (typically CREATING).
2
pollDatastore
GetDatastore
Read the data store properties and check whether provisioning has completed. Repeats while the data store is still CREATING.
3
provisioningFailed
GetDatastore
Terminal step reached when the data store reported CREATE_FAILED. Reads the properties one final time to surface the failed status.

Source API Descriptions

Arazzo Workflow Specification

amazon-healthimaging-provision-datastore-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon HealthImaging Provision Data Store
  summary: Create a data store and poll until it becomes ACTIVE before use.
  description: >-
    Provisions a new AWS HealthImaging data store and waits for it to finish
    provisioning. The workflow creates the data store, then repeatedly reads the
    data store properties until the status transitions from CREATING to ACTIVE.
    If provisioning fails the flow branches to a terminal failure. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: healthImagingApi
  url: ../openapi/amazon-healthimaging-openapi.yaml
  type: openapi
workflows:
- workflowId: provision-datastore
  summary: Create a HealthImaging data store and wait until it is ACTIVE.
  description: >-
    Creates a data store with the supplied name and idempotency token, then
    polls the data store properties until the data store reaches the ACTIVE
    state or fails provisioning.
  inputs:
    type: object
    required:
    - datastoreName
    - clientToken
    properties:
      datastoreName:
        type: string
        description: The human readable name for the new data store.
      clientToken:
        type: string
        description: A unique idempotency token for the create request.
      kmsKeyArn:
        type: string
        description: Optional ARN of a KMS key used to encrypt the data store.
  steps:
  - stepId: createDatastore
    description: >-
      Create the data store. The response returns the new data store identifier
      and its initial status (typically CREATING).
    operationId: CreateDatastore
    requestBody:
      contentType: application/json
      payload:
        datastoreName: $inputs.datastoreName
        clientToken: $inputs.clientToken
        kmsKeyArn: $inputs.kmsKeyArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datastoreId: $response.body#/datastoreId
      datastoreStatus: $response.body#/datastoreStatus
  - stepId: pollDatastore
    description: >-
      Read the data store properties and check whether provisioning has
      completed. Repeats while the data store is still CREATING.
    operationId: GetDatastore
    parameters:
    - name: datastoreId
      in: path
      value: $steps.createDatastore.outputs.datastoreId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datastoreStatus: $response.body#/datastoreProperties/datastoreStatus
      datastoreArn: $response.body#/datastoreProperties/datastoreArn
    onSuccess:
    - name: datastoreActive
      type: end
      criteria:
      - context: $response.body
        condition: $.datastoreProperties.datastoreStatus == "ACTIVE"
        type: jsonpath
    - name: datastoreFailed
      type: goto
      stepId: provisioningFailed
      criteria:
      - context: $response.body
        condition: $.datastoreProperties.datastoreStatus == "CREATE_FAILED"
        type: jsonpath
    - name: stillCreating
      type: goto
      stepId: pollDatastore
      criteria:
      - context: $response.body
        condition: $.datastoreProperties.datastoreStatus == "CREATING"
        type: jsonpath
  - stepId: provisioningFailed
    description: >-
      Terminal step reached when the data store reported CREATE_FAILED. Reads
      the properties one final time to surface the failed status.
    operationId: GetDatastore
    parameters:
    - name: datastoreId
      in: path
      value: $steps.createDatastore.outputs.datastoreId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datastoreStatus: $response.body#/datastoreProperties/datastoreStatus
  outputs:
    datastoreId: $steps.createDatastore.outputs.datastoreId
    datastoreStatus: $steps.pollDatastore.outputs.datastoreStatus
    datastoreArn: $steps.pollDatastore.outputs.datastoreArn