Juniper Mist AI Utilities Upgrade API

API Calls used to manage device upgrades for a single device, at the site level or at the organization level.

OpenAPI Specification

mist-ai-utilities-upgrade-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2604.1.1**

    >

    > Date: **May 13, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Admins Utilities Upgrade API
  version: 2604.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: API Calls used to manage device upgrades for a single device, at the site level or at the organization level.
  name: Utilities Upgrade
paths:
  /api/v1/orgs/{org_id}/devices/upgrade:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org multiple devices upgrades
      operationId: listOrgDeviceUpgrades
      responses:
        '200':
          $ref: '#/components/responses/OrgDeviceUpgradeList'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgDeviceUpgrades
      tags:
      - Utilities Upgrade
    post:
      description: Upgrade Multiple Sites (Only supported for Access Points upgrades)
      operationId: upgradeOrgDevices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/upgrade_org_devices'
      responses:
        '200':
          $ref: '#/components/responses/OrgDeviceUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeOrgDevices
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/devices/upgrade/{upgrade_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Multiple Devices Upgrade
      operationId: getOrgDeviceUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OrgDeviceUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getOrgDeviceUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/devices/upgrade/{upgrade_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/upgrade_id'
    post:
      description: Best effort to cancel an upgrade. Devices which are already upgraded wont be touched
      operationId: cancelOrgDeviceUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: cancelOrgDeviceUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/devices/versions:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Available Device Versions
      operationId: listOrgAvailableDeviceVersions
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - description: Fetch version for device model, use/combine with `type` as needed (for switch and gateway devices)
        in: query
        name: model
        schema:
          examples:
          - AP43
          type: string
      responses:
        '200':
          $ref: '#/components/responses/DeviceVersion'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgAvailableDeviceVersions
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/jsi/devices/{device_mac}/upgrade:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/device_mac'
    post:
      description: Upgrade
      operationId: upgradeOrgJsiDevice
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  version: 3.1.5
            schema:
              $ref: '#/components/schemas/version_string'
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeOrgJsiDevice
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/mxedges/upgrade:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org Mist Edge Upgrades
      operationId: listOrgMxEdgeUpgrades
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgradesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgMxEdgeUpgrades
      tags:
      - Utilities Upgrade
    post:
      description: Upgrade Mist Edges
      operationId: upgradeOrgMxEdges
      requestBody:
        content:
          application/json:
            examples:
              Upgrade_MxEdge:
                value:
                  allow_downgrades:
                    mxagent: false
                    tunterm: true
                  canary_phases:
                  - 5
                  - 25
                  - 50
                  - 100
                  channel: stable
                  max_failure_percentage: 5
                  max_failures:
                  - 1
                  - 1
                  - 5
                  - 5
                  mxedge_ids:
                  - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  start_time: 1624399840
                  strategy: serial
                  versions:
                    mxagent: latest
                    radsecproxy: <version>
                    tunterm: default
              Upgrade_MxEdge_Distro:
                value:
                  canary_phases:
                  - 5
                  - 25
                  - 50
                  - 100
                  distro: buster
                  max_failure_percentage: 5
                  max_failures:
                  - 1
                  - 1
                  - 5
                  - 5
                  mxedge_ids:
                  - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  start_time: 1624399840
                  strategy: serial
            schema:
              $ref: '#/components/schemas/mxedge_upgrade_multi'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeOrgMxEdges
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/mxedges/upgrade/{upgrade_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Mist Edge Upgrade
      operationId: getOrgMxEdgeUpgrade
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getOrgMxEdgeUpgrade
      tags:
      - Utilities Upgrade
    put:
      description: Update Mist Edge Upgrade. Only upgrades in `queued` state can be updated.
      operationId: updateOrgMxEdgeUpgrade
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mxedge_upgrade_multi'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateOrgMxEdgeUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/mxedges/upgrade/{upgrade_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/upgrade_id'
    post:
      description: Cancel Mist Edge Upgrade. Best effort to cancel an upgrade. Devices which are already upgraded won't be touched.
      operationId: cancelOrgMxEdgeUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: cancelOrgMxEdgeUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/ssr/upgrade:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org SSR Upgrades
      operationId: listOrgSsrUpgrades
      responses:
        '200':
          $ref: '#/components/responses/SsrUpgradesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgSsrUpgrades
      tags:
      - Utilities Upgrade
    post:
      description: Upgrade Org SSRs
      operationId: upgradeOrgSsrs
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  channel: stable
                  device_ids:
                  - 00000000-0000-0000-1000-5c5b3500001f
                  - 00000000-0000-0000-1000-5c5b35000020
                  strategy: big_bang
                  version: 5.3.0-93
            schema:
              $ref: '#/components/schemas/ssr_upgrade_multi'
      responses:
        '200':
          $ref: '#/components/responses/SsrUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeOrgSsrs
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/ssr/upgrade/{upgrade_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Specific Org SSR Upgrade
      operationId: getOrgSsrUpgrade
      responses:
        '200':
          $ref: '#/components/responses/SsrUpgradeStatus'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getOrgSsrUpgrade
      tags:
      - Utilities Upgrade
    post:
      description: 'Best effort to cancel an upgrade. Devices which are already upgraded wont be touched↵

        '
      operationId: cancelOrgSsrUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: cancelOrgSsrUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/orgs/{org_id}/ssr/versions:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get available version for SSR
      operationId: listOrgAvailableSsrVersions
      parameters:
      - $ref: '#/components/parameters/ssr_version_channel'
      - description: Optional. MAC address, or comma separated MAC address list.
        in: query
        name: mac
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/SsrVersions'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgAvailableSsrVersions
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/devices/upgrade:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get all upgrades for site
      operationId: listSiteDeviceUpgrades
      parameters:
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/upgrade_device_status'
      responses:
        '200':
          $ref: '#/components/responses/UpgradeSiteDevicesList'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteDeviceUpgrades
      tags:
      - Utilities Upgrade
    post:
      description: 'Upgrade Site Device


        **Note**: this call doesn’t guarantee the devices to be upgraded right away (they may be offline)'
      operationId: upgradeSiteDevices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/upgrade_site_devices'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/UpgradeId'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeSiteDevices
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/devices/upgrade/{upgrade_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Site Device Upgrade
      operationId: getSiteDeviceUpgrade
      responses:
        '200':
          $ref: '#/components/responses/SiteDeviceUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteDeviceUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/devices/upgrade/{upgrade_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/upgrade_id'
    post:
      description: Best effort to cancel an upgrade. Devices which are already upgraded wont be touched
      operationId: cancelSiteDeviceUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: cancelSiteDeviceUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/devices/versions:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get List of Available Device Versions
      operationId: listSiteAvailableDeviceVersions
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - description: Fetch version for device model, use/combine with `type` as needed (for switch and gateway devices)
        in: query
        name: model
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/DeviceVersion'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteAvailableDeviceVersions
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/devices/{device_id}/upgrade:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    post:
      description: Device Upgrade
      operationId: upgradeDevice
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  version: 3.1.5
            schema:
              $ref: '#/components/schemas/device_upgrade'
      responses:
        '200':
          $ref: '#/components/responses/UpgradeDevice'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeDevice
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/mxedges/upgrade:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get List of Site Mist Edge Upgrades
      operationId: listSiteMxEdgeUpgrades
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgradesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteMxEdgeUpgrades
      tags:
      - Utilities Upgrade
    post:
      description: 'Upgrade Mist Edges in a Site.


        See [Org Mist Edges](/#tag/Utilities-Upgrade/operation/upgradeOrgMxEdges) for package upgrades


        See [Org Mist Edges Distro](/#tag/Utilities-Upgrade/operation/upgradeOrgMxEdges) for distro upgrades'
      operationId: upgradeSiteMxEdges
      requestBody:
        content:
          application/json:
            examples:
              Upgrade_MxEdge:
                value:
                  allow_downgrades:
                    mxagent: false
                    tunterm: true
                  canary_phases:
                  - 5
                  - 25
                  - 50
                  - 100
                  channel: stable
                  max_failure_percentage: 5
                  max_failures:
                  - 1
                  - 1
                  - 5
                  - 5
                  mxedge_ids:
                  - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  start_time: 1624399840
                  strategy: serial
                  versions:
                    mxagent: latest
                    radsecproxy: <version>
                    tunterm: default
              Upgrade_MxEdge_Distro:
                value:
                  canary_phases:
                  - 5
                  - 25
                  - 50
                  - 100
                  distro: buster
                  max_failure_percentage: 5
                  max_failures:
                  - 1
                  - 1
                  - 5
                  - 5
                  mxedge_ids:
                  - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  start_time: 1624399840
                  strategy: serial
            schema:
              $ref: '#/components/schemas/mxedge_upgrade_multi'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeSiteMxEdges
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/mxedges/upgrade/{upgrade_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Mist Edge Upgrade
      operationId: getSiteMxEdgeUpgrade
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteMxEdgeUpgrade
      tags:
      - Utilities Upgrade
    put:
      description: Update Mist Edge Upgrade. Only upgrades in `queued` state can be updated.
      operationId: updateSiteMxEdgeUpgrade
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mxedge_upgrade_multi'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/MxEdgeUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateSiteMxEdgeUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/mxedges/upgrade/{upgrade_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/upgrade_id'
    post:
      description: Cancel Mist Edge Upgrade. Best effort to cancel an upgrade. MxEdges which are already upgraded won't be touched.
      operationId: cancelSiteMxEdgeUpgrade
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: cancelSiteMxEdgeUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/ssr/upgrade/{upgrade_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/upgrade_id'
    get:
      description: Get Specific Site SSR Upgrade
      operationId: getSiteSsrUpgrade
      responses:
        '200':
          $ref: '#/components/responses/SsrUpgradeStatus'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteSsrUpgrade
      tags:
      - Utilities Upgrade
  /api/v1/sites/{site_id}/ssr/{device_id}/upgrade:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    post:
      description: Upgrade Site SSR device
      operationId: upgradeSsr
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  channel: stable
                  version: 5.3.1-170-93
            schema:
              $ref: '#/components/schemas/ssr_upgrade'
      responses:
        '200':
          $ref: '#/components/responses/SsrUpgrade'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: upgradeSsr
      tags:
      - Utilities Upgrade
components:
  schemas:
    upgrade_devices_targets_downloading:
      description: List of devices MAC Addresses which are currently downloading the firmware
      items:
        type: string
      type: array
    upgrade_org_devices_version:
      additionalProperties: false
      properties:
        firmware_type:
          $ref: '#/components/schemas/upgrade_org_devices_version_firmware_type'
        force:
          default: false
          description: If `firmware_type`==`ap`, set to `true` if upgrade is needed when target version <= running version
          type: boolean
        model_version:
          $ref: '#/components/schemas/upgrade_org_devices_version_model_version'
        version:
          description: version of the firmware to deploy
          type: string
      type: object
    response_site_device_upgrades_item:
      additionalProperties: false
      properties:
        counts:
          $ref: '#/components/schemas/upgrade_site_devices_counts'
        current_phase:
          description: Current canary or rrm phase in progress
          type: integer
        enable_p2p:
          description: Whether to allow local AP-to-AP FW upgrade
          type: boolean
        force:
          description: Whether to force upgrade when requested version is same as running version
          type: boolean
        id:
          $ref: '#/components/schemas/id'
        max_failure_percentage:
          description: Percentage of failures allowed
          type: integer
        max_failures:
          $ref: '#/components/schemas/upgrade_devices_max_failures'
        reboot_at:
          description: reboot start time in epoch
          type: integer
        start_time:
          description: Firmware download start time in epoch
          type: integer
        status:
          $ref: '#/components/schemas/upgrade_device_status'
        strategy:
          $ref: '#/components/schemas/upgrade_device_strategy'
        target_version:
          description: Version to upgrade to
          minLength: 1
          type: string
        upgrade_plan:
          additionalProperties: true
          description: a dictionary of rrm phase number to devices part of that phase
          type: object
      required:
      - id
      type: object
    strings:
      items:
        type: string
      type: array
      uniqueItems: true
    response_ssr_upgrade_status_targets:
      additionalProperties: false
      properties:
        failed:
          $ref: '#/components/schemas/strings'
        queued:
          $ref: '#/components/schemas/strings'
        success:
          $ref: '#/components/schemas/strings'
        upgrading:
          $ref: '#/components/schemas/strings'
      required:
      - queued
      - upgrading
      - success
      - failed
      type: object
    upgrade_device_rrm_node_order:
      default: fringe_to_center
      description: 'For APs only and if `strategy`==`rrm`. Used in rrm to determine whether to start upgrade from fringe or center AP’s. enum: `center_to_fringe`, `fringe_to_center`'
      enum:
      - center_to_fringe
      - fringe_to_center
      type: string
    mxedge_upgrade_multi_mxedge_ids:
      description: List of mxedge IDs to upgrade. If not specified, it means all the org mxedges.
      items:
        format: uuid
        type: string
      type: array
    response_site_device_upgrade:
      add

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist-ai/refs/heads/main/openapi/mist-ai-utilities-upgrade-api-openapi.yml