Amazon API Gateway · Arazzo Workflow

AWS API Gateway Provision and Deploy a REST API

Version 1.0.0

Create a REST API, configure a method on its root resource, deploy it, and confirm the stage.

1 workflow 1 source API 1 provider
View Spec View on GitHub API GatewayCloudRESTHTTPWebSocketServerlessMCPAgentCoreDeveloper PortalArazzoWorkflows

Provider

aws-api-gateway

Workflows

provision-rest-api
Stand up a deployable REST API end to end.
Creates a REST API, resolves its root resource, attaches a method, deploys to a stage, and verifies the stage exists.
5 steps inputs: apiKeyRequired, authorizationType, description, httpMethod, name, stageName, version outputs: deploymentId, restApiId, rootResourceId, stages
1
createRestApi
createRestApi
Create the REST API container that will hold resources, methods, and deployments.
2
listResources
getResources
List the resources for the new REST API to obtain the root resource id that the method will be attached to.
3
putMethod
putMethod
Add the requested HTTP method to the root resource so the API can receive requests.
4
createDeployment
createDeployment
Create a deployment that snapshots the current configuration and publishes it to the named stage.
5
confirmStage
getStages
List the stages for the REST API to confirm the deployment created the requested stage.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: AWS API Gateway Provision and Deploy a REST API
  summary: Create a REST API, configure a method on its root resource, deploy it, and confirm the stage.
  description: >-
    The canonical Amazon API Gateway V1 provisioning flow. The workflow creates
    a new RestApi, lists its automatically created resources to obtain the root
    resource id, puts an HTTP method on that resource, creates a deployment to a
    named stage, and finally lists the stages to confirm the deployment is live.
    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: apiGatewayV1
  url: ../openapi/aws-api-gateway-v1-openapi.yml
  type: openapi
workflows:
- workflowId: provision-rest-api
  summary: Stand up a deployable REST API end to end.
  description: >-
    Creates a REST API, resolves its root resource, attaches a method, deploys
    to a stage, and verifies the stage exists.
  inputs:
    type: object
    required:
    - name
    - httpMethod
    - stageName
    properties:
      name:
        type: string
        description: Name of the new REST API.
      description:
        type: string
        description: Optional description for the REST API.
      version:
        type: string
        description: Optional version identifier for the REST API.
      httpMethod:
        type: string
        description: The HTTP verb to add to the root resource (e.g. GET, ANY).
      authorizationType:
        type: string
        description: Authorization type for the method (e.g. NONE, AWS_IAM).
      apiKeyRequired:
        type: boolean
        description: Whether the method requires an API key.
      stageName:
        type: string
        description: Name of the stage to deploy the API to.
  steps:
  - stepId: createRestApi
    description: >-
      Create the REST API container that will hold resources, methods, and
      deployments.
    operationId: createRestApi
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        description: $inputs.description
        version: $inputs.version
        endpointConfiguration:
          types:
          - REGIONAL
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      restApiId: $response.body#/id
      restApiName: $response.body#/name
  - stepId: listResources
    description: >-
      List the resources for the new REST API to obtain the root resource id
      that the method will be attached to.
    operationId: getResources
    parameters:
    - name: restapi_id
      in: path
      value: $steps.createRestApi.outputs.restApiId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      rootResourceId: $response.body#/items/0/id
  - stepId: putMethod
    description: >-
      Add the requested HTTP method to the root resource so the API can receive
      requests.
    operationId: putMethod
    parameters:
    - name: restapi_id
      in: path
      value: $steps.createRestApi.outputs.restApiId
    - name: resource_id
      in: path
      value: $steps.listResources.outputs.rootResourceId
    - name: http_method
      in: path
      value: $inputs.httpMethod
    requestBody:
      contentType: application/json
      payload:
        authorizationType: $inputs.authorizationType
        apiKeyRequired: $inputs.apiKeyRequired
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      methodHttpMethod: $response.body#/httpMethod
  - stepId: createDeployment
    description: >-
      Create a deployment that snapshots the current configuration and publishes
      it to the named stage.
    operationId: createDeployment
    parameters:
    - name: restapi_id
      in: path
      value: $steps.createRestApi.outputs.restApiId
    requestBody:
      contentType: application/json
      payload:
        stageName: $inputs.stageName
        description: $inputs.description
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      deploymentId: $response.body#/id
  - stepId: confirmStage
    description: >-
      List the stages for the REST API to confirm the deployment created the
      requested stage.
    operationId: getStages
    parameters:
    - name: restapi_id
      in: path
      value: $steps.createRestApi.outputs.restApiId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      stages: $response.body#/item
  outputs:
    restApiId: $steps.createRestApi.outputs.restApiId
    rootResourceId: $steps.listResources.outputs.rootResourceId
    deploymentId: $steps.createDeployment.outputs.deploymentId
    stages: $steps.confirmStage.outputs.stages

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/aws-api-gateway-provision-rest-api-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 email required.

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