Amazon EBS · Arazzo Workflow

Amazon EBS Inventory Volumes and Snapshots

Version 1.0.0

Page through EBS volumes and snapshots to build a storage inventory.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesBlock StorageEBSEC2SnapshotsStorageVolumesArazzoWorkflows

Provider

amazon-ebs

Workflows

inventory-volumes-and-snapshots
Describe EBS volumes and snapshots for a storage inventory pass.
Reads a page of volumes and a page of snapshots, returning the result sets and any next-page tokens for continued paging.
2 steps inputs: maxResults, nextToken outputs: volumes, volumesNextToken
1
listVolumes
describeVolumes
Describe a page of the account EBS volumes.
2
listSnapshots
describeSnapshots
Describe a page of the account EBS snapshots to round out the storage inventory.

Source API Descriptions

Arazzo Workflow Specification

amazon-ebs-inventory-volumes-and-snapshots-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon EBS Inventory Volumes and Snapshots
  summary: Page through EBS volumes and snapshots to build a storage inventory.
  description: >-
    The ListChangedBlocks direct block API was not present in the spec, so this
    workflow adapts the requested two-snapshot listing pattern to a read-only
    inventory of the EC2-style volume and snapshot describe operations the
    description actually supports. It describes the account volumes, then
    describes the account snapshots, surfacing pagination tokens so a caller can
    continue paging. 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: amazonEbsApi
  url: ../openapi/amazon-ebs-openapi.yml
  type: openapi
workflows:
- workflowId: inventory-volumes-and-snapshots
  summary: Describe EBS volumes and snapshots for a storage inventory pass.
  description: >-
    Reads a page of volumes and a page of snapshots, returning the result sets
    and any next-page tokens for continued paging.
  inputs:
    type: object
    properties:
      maxResults:
        type: integer
        description: The maximum number of items to return per page.
      nextToken:
        type: string
        description: The token for the next page of volume results.
  steps:
  - stepId: listVolumes
    description: >-
      Describe a page of the account EBS volumes.
    operationId: describeVolumes
    parameters:
    - name: Action
      in: query
      value: DescribeVolumes
    - name: Version
      in: query
      value: '2016-11-15'
    - name: MaxResults
      in: query
      value: $inputs.maxResults
    - name: NextToken
      in: query
      value: $inputs.nextToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      volumes: $response.body#/volumeSet
      nextToken: $response.body#/nextToken
  - stepId: listSnapshots
    description: >-
      Describe a page of the account EBS snapshots to round out the storage
      inventory.
    operationId: describeSnapshots
    parameters:
    - name: Action
      in: query
      value: DescribeSnapshots
    - name: Version
      in: query
      value: '2016-11-15'
    - name: MaxResults
      in: query
      value: $inputs.maxResults
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      statusCode: $statusCode
  outputs:
    volumes: $steps.listVolumes.outputs.volumes
    volumesNextToken: $steps.listVolumes.outputs.nextToken