Amazon DynamoDB · Arazzo Workflow

Amazon DynamoDB Add a Global Secondary Index and Wait

Version 1.0.0

Add a global secondary index to a table and poll until ACTIVE.

1 workflow 1 source API 1 provider
View Spec View on GitHub DatabaseDocument StoreKey-ValueNoSQLServerlessArazzoWorkflows

Provider

amazon-dynamodb

Workflows

create-index-and-wait
Add a global secondary index and wait for the table to return to ACTIVE.
Submits an UpdateTable request carrying a GlobalSecondaryIndexUpdates create action plus the new attribute definitions, then polls DescribeTable until TableStatus is ACTIVE again.
2 steps inputs: attributeDefinitions, globalSecondaryIndexUpdates, tableName outputs: globalSecondaryIndexes, tableStatus
1
addIndex
Submit the UpdateTable request that creates the new global secondary index and declares its key attributes.
2
waitForActive
Poll DescribeTable until the table status returns to ACTIVE, looping while the index is still backfilling.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Amazon DynamoDB Add a Global Secondary Index and Wait
  summary: Add a global secondary index to a table and poll until ACTIVE.
  description: >-
    Adds a new global secondary index to an existing table with UpdateTable
    and then polls DescribeTable until the overall table status returns to
    ACTIVE, indicating the index has finished backfilling. Every step spells
    out its request inline, including the AWS JSON protocol X-Amz-Target
    header, so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: tablesApi
  url: ../openapi/amazon-dynamodb-tables-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-index-and-wait
  summary: Add a global secondary index and wait for the table to return to ACTIVE.
  description: >-
    Submits an UpdateTable request carrying a GlobalSecondaryIndexUpdates
    create action plus the new attribute definitions, then polls
    DescribeTable until TableStatus is ACTIVE again.
  inputs:
    type: object
    required:
    - tableName
    - attributeDefinitions
    - globalSecondaryIndexUpdates
    properties:
      tableName:
        type: string
        description: The name of the table to add the index to.
      attributeDefinitions:
        type: array
        description: Attribute definitions for the new index key attributes.
        items:
          type: object
      globalSecondaryIndexUpdates:
        type: array
        description: An array of GSI update actions (each with a Create block).
        items:
          type: object
  steps:
  - stepId: addIndex
    description: >-
      Submit the UpdateTable request that creates the new global secondary
      index and declares its key attributes.
    operationId: updateTable
    parameters:
    - name: X-Amz-Target
      in: header
      value: DynamoDB_20120810.UpdateTable
    requestBody:
      contentType: application/x-amz-json-1.0
      payload:
        TableName: $inputs.tableName
        AttributeDefinitions: $inputs.attributeDefinitions
        GlobalSecondaryIndexUpdates: $inputs.globalSecondaryIndexUpdates
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tableStatus: $response.body#/Table/TableStatus
  - stepId: waitForActive
    description: >-
      Poll DescribeTable until the table status returns to ACTIVE, looping
      while the index is still backfilling.
    operationId: describeTable
    parameters:
    - name: X-Amz-Target
      in: header
      value: DynamoDB_20120810.DescribeTable
    requestBody:
      contentType: application/x-amz-json-1.0
      payload:
        TableName: $inputs.tableName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tableStatus: $response.body#/Table/TableStatus
      globalSecondaryIndexes: $response.body#/Table/GlobalSecondaryIndexes
    onSuccess:
    - name: stillUpdating
      type: goto
      stepId: waitForActive
      criteria:
      - context: $response.body
        condition: $.Table.TableStatus != 'ACTIVE'
        type: jsonpath
    - name: nowActive
      type: end
      criteria:
      - context: $response.body
        condition: $.Table.TableStatus == 'ACTIVE'
        type: jsonpath
  outputs:
    tableStatus: $steps.waitForActive.outputs.tableStatus
    globalSecondaryIndexes: $steps.waitForActive.outputs.globalSecondaryIndexes

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/amazon-dynamodb-create-index-and-wait-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.