Amazon HealthOmics · Arazzo Workflow

Amazon HealthOmics Import Reference Genome

Version 1.0.0

Provision a reference store, start a reference import job, and poll it to completion.

1 workflow 1 source API 1 provider
View Spec View on GitHub BioinformaticsGenomicsHealthcareLife SciencesCloud ComputingArazzoWorkflows

Provider

amazon-healthomics

Workflows

import-reference
Create a reference store then import a reference genome and wait for completion.
Creates a new reference store, starts a reference import job against it using the supplied service role and source, and polls GetReferenceImportJob until the job is COMPLETED, COMPLETED_WITH_FAILURES, or FAILED.
3 steps inputs: description, roleArn, sources, storeName outputs: finalStatus, importJobId, referenceStoreId
1
createReferenceStore
CreateReferenceStore
Create a reference store to hold the imported reference genome.
2
startImportJob
StartReferenceImportJob
Start a reference import job that loads the reference FASTA into the new store.
3
pollImportJob
GetReferenceImportJob
Poll the reference import job until it reaches a terminal status. The status enum is SUBMITTED, IN_PROGRESS, CANCELLING, CANCELLED, FAILED, COMPLETED, or COMPLETED_WITH_FAILURES.

Source API Descriptions

Arazzo Workflow Specification

amazon-healthomics-import-reference-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon HealthOmics Import Reference Genome
  summary: Provision a reference store, start a reference import job, and poll it to completion.
  description: >-
    Reference genomes underpin every downstream genomics analysis in Amazon
    HealthOmics. This workflow creates a reference store, starts a reference
    import job that pulls a FASTA source file from Amazon S3 into the store, and
    polls the import job until it reaches a terminal state. Each step spells out
    its AWS REST-JSON request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: healthOmicsApi
  url: ../openapi/amazon-healthomics-openapi.yaml
  type: openapi
workflows:
- workflowId: import-reference
  summary: Create a reference store then import a reference genome and wait for completion.
  description: >-
    Creates a new reference store, starts a reference import job against it
    using the supplied service role and source, and polls GetReferenceImportJob
    until the job is COMPLETED, COMPLETED_WITH_FAILURES, or FAILED.
  inputs:
    type: object
    required:
    - storeName
    - roleArn
    - sources
    properties:
      storeName:
        type: string
        description: A name for the new reference store.
      description:
        type: string
        description: An optional description for the reference store.
      roleArn:
        type: string
        description: The service role ARN that HealthOmics assumes to read the source file.
      sources:
        type: array
        description: The reference import job sources (each with sourceFile S3 URI and name).
        items:
          type: object
  steps:
  - stepId: createReferenceStore
    description: Create a reference store to hold the imported reference genome.
    operationId: CreateReferenceStore
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.storeName
        description: $inputs.description
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      referenceStoreId: $response.body#/id
      referenceStoreArn: $response.body#/arn
  - stepId: startImportJob
    description: Start a reference import job that loads the reference FASTA into the new store.
    operationId: StartReferenceImportJob
    parameters:
    - name: referenceStoreId
      in: path
      value: $steps.createReferenceStore.outputs.referenceStoreId
    requestBody:
      contentType: application/json
      payload:
        roleArn: $inputs.roleArn
        sources: $inputs.sources
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      importJobId: $response.body#/id
      importStatus: $response.body#/status
  - stepId: pollImportJob
    description: >-
      Poll the reference import job until it reaches a terminal status. The
      status enum is SUBMITTED, IN_PROGRESS, CANCELLING, CANCELLED, FAILED,
      COMPLETED, or COMPLETED_WITH_FAILURES.
    operationId: GetReferenceImportJob
    parameters:
    - name: referenceStoreId
      in: path
      value: $steps.createReferenceStore.outputs.referenceStoreId
    - name: id
      in: path
      value: $steps.startImportJob.outputs.importJobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/status
      statusMessage: $response.body#/statusMessage
      completionTime: $response.body#/completionTime
    onSuccess:
    - name: importComplete
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: importFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "FAILED"
        type: jsonpath
    - name: importStillRunning
      type: goto
      stepId: pollImportJob
      criteria:
      - context: $response.body
        condition: $.status == "IN_PROGRESS" || $.status == "SUBMITTED"
        type: jsonpath
  outputs:
    referenceStoreId: $steps.createReferenceStore.outputs.referenceStoreId
    importJobId: $steps.startImportJob.outputs.importJobId
    finalStatus: $steps.pollImportJob.outputs.jobStatus