Cisco Expressway · Arazzo Workflow

Cisco Expressway System Upgrade

Version 1.0.0

Set SFTP details, trigger a software upgrade, then poll upgrade status.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CollaborationFirewall TraversalH.323Session Border ControllerSIPUnified CommunicationsVideo ConferencingArazzoWorkflows

Provider

cisco-expressway

Workflows

system-upgrade
Configure SFTP, trigger the upgrade, then read upgrade progress.
Updates the SFTP upgrade configuration, triggers the system upgrade using the supplied image filename, and reads upgrade status, branching on whether the upgrade has failed.
3 steps inputs: autoReboot, host, password, sftpFilePath, sftpPassword, sftpPort, sftpServerAddress, sftpUsername, upgradeFileName, username outputs: progressPercentage, status, triggerStatus
1
setSftpConfig
Write the SFTP configuration so the upgrade process knows where to fetch the image from.
2
triggerUpgrade
Trigger the system upgrade, which downloads the image via SFTP and optionally reboots when complete.
3
readUpgradeStatus
Read the upgrade progress status and branch when the reported phase is Failed so callers can distinguish a failed upgrade from one in progress.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Cisco Expressway System Upgrade
  summary: Set SFTP details, trigger a software upgrade, then poll upgrade status.
  description: >-
    Drives a software upgrade end to end by writing the SFTP configuration that
    points at the upgrade image, triggering the upgrade so the image is fetched
    over SFTP, and reading upgrade progress status. The status read branches on
    the reported phase so a failed upgrade ends the flow distinctly from one that
    is downloading or complete. 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: sftpApi
  url: ../openapi/cisco-expressway-sftp-api-openapi.yml
  type: openapi
- name: upgradeApi
  url: ../openapi/cisco-expressway-upgrade-api-openapi.yml
  type: openapi
workflows:
- workflowId: system-upgrade
  summary: Configure SFTP, trigger the upgrade, then read upgrade progress.
  description: >-
    Updates the SFTP upgrade configuration, triggers the system upgrade using the
    supplied image filename, and reads upgrade status, branching on whether the
    upgrade has failed.
  inputs:
    type: object
    required:
    - host
    - username
    - password
    - sftpServerAddress
    - sftpUsername
    - sftpPassword
    - sftpFilePath
    - upgradeFileName
    properties:
      host:
        type: string
        description: FQDN or IP address of the Expressway node (server variable host).
      username:
        type: string
        description: Expressway administrator username for HTTP Basic auth.
      password:
        type: string
        description: Expressway administrator password for HTTP Basic auth.
      sftpServerAddress:
        type: string
        description: Hostname or IP of the SFTP server holding the upgrade image.
      sftpPort:
        type: integer
        description: SFTP server port (defaults to 22).
      sftpUsername:
        type: string
        description: Username for SFTP authentication.
      sftpPassword:
        type: string
        description: Password for SFTP authentication.
      sftpFilePath:
        type: string
        description: Path to the upgrade image file on the SFTP server.
      upgradeFileName:
        type: string
        description: Filename of the upgrade image (e.g. s42701x14_2_0.tar.gz).
      autoReboot:
        type: boolean
        description: Whether to automatically reboot after the download completes.
  steps:
  - stepId: setSftpConfig
    description: >-
      Write the SFTP configuration so the upgrade process knows where to fetch
      the image from.
    operationId: updateSftpConfig
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    requestBody:
      contentType: application/json
      payload:
        ServerAddress: $inputs.sftpServerAddress
        Port: $inputs.sftpPort
        Username: $inputs.sftpUsername
        Password: $inputs.sftpPassword
        FilePath: $inputs.sftpFilePath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sftpServer: $response.body#/ServerAddress
  - stepId: triggerUpgrade
    description: >-
      Trigger the system upgrade, which downloads the image via SFTP and
      optionally reboots when complete.
    operationId: triggerUpgrade
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    requestBody:
      contentType: application/json
      payload:
        ImageDownloadMode: SFTP
        UpgradeFileName: $inputs.upgradeFileName
        AutoReboot: $inputs.autoReboot
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      triggerStatus: $response.body#/Status
  - stepId: readUpgradeStatus
    description: >-
      Read the upgrade progress status and branch when the reported phase is
      Failed so callers can distinguish a failed upgrade from one in progress.
    operationId: getUpgradeStatus
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/Status
      progressPercentage: $response.body#/ProgressPercentage
    onSuccess:
    - name: upgradeFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.Status == 'Failed'
        type: jsonpath
    - name: upgradeProgressing
      type: end
      criteria:
      - context: $response.body
        condition: $.Status != 'Failed'
        type: jsonpath
  outputs:
    triggerStatus: $steps.triggerUpgrade.outputs.triggerStatus
    status: $steps.readUpgradeStatus.outputs.status
    progressPercentage: $steps.readUpgradeStatus.outputs.progressPercentage

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/cisco-expressway-system-upgrade-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.