AWS CloudFormation · Arazzo Workflow

CloudFormation Safe Stack Update

Version 1.0.0

Summarize a template, update the stack, poll until UPDATE_COMPLETE, then pull the stack events.

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

Provider

cloudformation

Workflows

safe-stack-update
Summarize, apply, and audit an in-place CloudFormation stack update.
Inspects the template summary, updates the stack, waits for the update to finish, and retrieves the stack events for auditing.
4 steps inputs: capability, stackName, templateBody outputs: finalStatus, stackEvents, stackId
1
summarizeTemplate
Get the template summary to surface required capabilities and declared parameters before applying the update.
2
updateStack
Apply the updated template to the stack. After this call returns the stack update has started and can be polled via DescribeStacks.
3
pollStackUpdate
Poll DescribeStacks until the update settles, then proceed to pull events whether the update succeeded or rolled back.
4
pullEvents
Retrieve the recent stack events in reverse chronological order so the update can be audited resource by resource.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: CloudFormation Safe Stack Update
  summary: Summarize a template, update the stack, poll until UPDATE_COMPLETE, then pull the stack events.
  description: >-
    A direct (non-change-set) stack update with guardrails. The workflow first
    asks GetTemplateSummary to surface the capabilities and parameters the
    template requires, then calls UpdateStack, polls DescribeStacks until the
    update settles into UPDATE_COMPLETE (branching to an event review on
    rollback), and finally pulls the recent stack events so the caller can audit
    exactly what happened during the update. 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
  x-realizes-capability-ids:
  - BC-600.50
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-600.50
      capability_name: IT Infrastructure Management
      spec: cloudformation-templates-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: stackEventsApi
  url: ../openapi/cloudformation-stack-events-api-openapi.yml
  type: openapi
- name: stacksApi
  url: ../openapi/cloudformation-stacks-api-openapi.yml
  type: openapi
- name: templatesApi
  url: ../openapi/cloudformation-templates-api-openapi.yml
  type: openapi
workflows:
- workflowId: safe-stack-update
  summary: Summarize, apply, and audit an in-place CloudFormation stack update.
  description: >-
    Inspects the template summary, updates the stack, waits for the update to
    finish, and retrieves the stack events for auditing.
  inputs:
    type: object
    required:
    - stackName
    - templateBody
    properties:
      stackName:
        type: string
        description: The name or unique ID of the stack to update.
      templateBody:
        type: string
        description: The updated CloudFormation template body to apply.
      capability:
        type: string
        description: An optional capability to acknowledge (e.g. CAPABILITY_IAM).
  steps:
  - stepId: summarizeTemplate
    description: >-
      Get the template summary to surface required capabilities and declared
      parameters before applying the update.
    operationId: getTemplateSummary
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        TemplateBody: $inputs.templateBody
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      requiredCapabilities: $response.body#/GetTemplateSummaryResult/Capabilities
      parameters: $response.body#/GetTemplateSummaryResult/Parameters
  - stepId: updateStack
    description: >-
      Apply the updated template to the stack. After this call returns the stack
      update has started and can be polled via DescribeStacks.
    operationId: updateStack
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        StackName: $inputs.stackName
        TemplateBody: $inputs.templateBody
        Capabilities:
        - $inputs.capability
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      stackId: $response.body#/UpdateStackResult/StackId
  - stepId: pollStackUpdate
    description: >-
      Poll DescribeStacks until the update settles, then proceed to pull events
      whether the update succeeded or rolled back.
    operationId: describeStacks
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        StackName: $inputs.stackName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      stackStatus: $response.body#/DescribeStacksResult/Stacks/0/StackStatus
    onSuccess:
    - name: updateSettled
      type: goto
      stepId: pullEvents
      criteria:
      - context: $response.body
        condition: $.DescribeStacksResult.Stacks[0].StackStatus in ["UPDATE_COMPLETE","UPDATE_ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED"]
        type: jsonpath
    - name: stillUpdating
      type: goto
      stepId: pollStackUpdate
      criteria:
      - context: $response.body
        condition: $.DescribeStacksResult.Stacks[0].StackStatus in ["UPDATE_IN_PROGRESS","UPDATE_COMPLETE_CLEANUP_IN_PROGRESS","UPDATE_ROLLBACK_IN_PROGRESS"]
        type: jsonpath
  - stepId: pullEvents
    description: >-
      Retrieve the recent stack events in reverse chronological order so the
      update can be audited resource by resource.
    operationId: describeStackEvents
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        StackName: $inputs.stackName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      stackEvents: $response.body#/DescribeStackEventsResult/StackEvents
  outputs:
    stackId: $steps.updateStack.outputs.stackId
    finalStatus: $steps.pollStackUpdate.outputs.stackStatus
    stackEvents: $steps.pullEvents.outputs.stackEvents

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-safe-stack-update-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.