AWS CloudFormation · Arazzo Workflow

CloudFormation Review and Clean Up a Change Set

Version 1.0.0

Create a change set, poll until it is computed, then branch — delete it when it contains no changes, otherwise keep it for review.

1 workflow 1 source API 1 provider
View Spec View on GitHub AutomationCloud ResourcesIaCInfrastructure as CodeStack ManagementArazzoWorkflows

Provider

cloudformation

Workflows

review-change-set
Create a change set for review and clean it up when it is empty.
Creates a change set, waits for it to compute, and deletes it if it contains no changes; otherwise leaves it in place for review.
3 steps inputs: capability, changeSetName, stackName, templateBody outputs: changeSetId, changeSetStatus, changes
1
createChangeSet
Create a change set diffing the candidate template against the stack's current template.
2
pollChangeSet
Poll DescribeChangeSet until it finishes computing. Branch to cleanup when it failed (typically because there were no changes), or end with the change set intact when real changes are present.
3
deleteEmptyChangeSet
Delete the empty or failed change set so it does not linger and risk being executed by mistake.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: CloudFormation Review and Clean Up a Change Set
  summary: Create a change set, poll until it is computed, then branch — delete it when it contains no changes, otherwise keep it for review.
  description: >-
    A dry-run review flow that avoids leaving empty change sets behind. The
    workflow creates a change set, polls DescribeChangeSet until it finishes
    computing, and then branches on the result: when CloudFormation reports the
    change set failed because it contained no changes, the workflow deletes the
    useless change set; when real changes are present, it ends and leaves the
    change set in place for a human to review and execute. Every step spells out
    its request inline using the AWS query protocol so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: changeSetsApi
  url: ../openapi/cloudformation-change-sets-api-openapi.yml
  type: openapi
workflows:
- workflowId: review-change-set
  summary: Create a change set for review and clean it up when it is empty.
  description: >-
    Creates a change set, waits for it to compute, and deletes it if it contains
    no changes; otherwise leaves it in place for review.
  inputs:
    type: object
    required:
    - stackName
    - changeSetName
    - templateBody
    properties:
      stackName:
        type: string
        description: The name or unique ID of the existing stack to review changes for.
      changeSetName:
        type: string
        description: The name to assign to the change set.
      templateBody:
        type: string
        description: The candidate CloudFormation template body to diff against the stack.
      capability:
        type: string
        description: An optional capability to acknowledge (e.g. CAPABILITY_IAM).
  steps:
  - stepId: createChangeSet
    description: >-
      Create a change set diffing the candidate template against the stack's
      current template.
    operationId: createChangeSet
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        StackName: $inputs.stackName
        ChangeSetName: $inputs.changeSetName
        TemplateBody: $inputs.templateBody
        ChangeSetType: UPDATE
        Capabilities:
        - $inputs.capability
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      changeSetId: $response.body#/CreateChangeSetResult/Id
  - stepId: pollChangeSet
    description: >-
      Poll DescribeChangeSet until it finishes computing. Branch to cleanup when
      it failed (typically because there were no changes), or end with the
      change set intact when real changes are present.
    operationId: describeChangeSet
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        ChangeSetName: $inputs.changeSetName
        StackName: $inputs.stackName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      changeSetStatus: $response.body#/Status
      statusReason: $response.body#/StatusReason
      changes: $response.body#/Changes
    onSuccess:
    - name: hasChanges
      type: end
      criteria:
      - context: $response.body
        condition: $.Status == "CREATE_COMPLETE"
        type: jsonpath
    - name: noChanges
      type: goto
      stepId: deleteEmptyChangeSet
      criteria:
      - context: $response.body
        condition: $.Status == "FAILED"
        type: jsonpath
    - name: stillComputing
      type: goto
      stepId: pollChangeSet
      criteria:
      - context: $response.body
        condition: $.Status in ["CREATE_PENDING","CREATE_IN_PROGRESS"]
        type: jsonpath
  - stepId: deleteEmptyChangeSet
    description: >-
      Delete the empty or failed change set so it does not linger and risk being
      executed by mistake.
    operationId: deleteChangeSet
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        ChangeSetName: $inputs.changeSetName
        StackName: $inputs.stackName
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    changeSetId: $steps.createChangeSet.outputs.changeSetId
    changeSetStatus: $steps.pollChangeSet.outputs.changeSetStatus
    changes: $steps.pollChangeSet.outputs.changes

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/cloudformation-review-change-set-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.