openapi: 3.1.0
info:
contact:
email: tmunzer@juniper.net
name: Thomas Munzer
description: '> Version: **2604.1.1**
>
> Date: **May 13, 2026**
NOTE:
Some important API changes will be introduced. Please make sure to read the
announcements
---
## 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:
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:
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:
additionalProperties: false
properties:
canary_phases:
$ref: '#/components/schemas/response_site_device_upgrade_canary_phases'
current_phase:
description: Current canary or rrm phase in progress
type: integer
enable_p2p:
default: false
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'
p2p_cluster_size:
default: 10
description: size to split the devices for p2p
type: integer
p2p_parallelism:
default: 1
description: number of parallel p2p download batches to create
type: integer
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
targets:
$ref: '#/components/schemas/upgrade_devices_targets'
upgrade_plan:
$ref: '#/components/schemas/upgrade_devices_plans'
required:
- id
type: object
upgrade_org_devices:
properties:
all_sites:
default: false
description: If `true`, will upgrade all sites in this org
type: boolean
canary_phases:
$ref: '#/components/schemas/upgrade_device_canary_phases'
device_type:
$ref: '#/components/schemas/device_type'
download_strategy:
$ref: '#/components/schemas/upgrade_org_devices_download_strategy'
max_failure_percentage:
$ref: '#/components/schemas/upgrade_devices_max_failure_percentage'
max_failures:
$ref: '#/components/schemas/upgrade_devices_max_failures'
models:
$ref: '#/components/schemas/upgrade_org_devices_models'
p2p_cluster_size:
default: 10
description: For APs only and if `enable_p2p`==`true`.
examples:
- 0
minimum: 0
type: integer
p2p_parallelism:
description: For APs only and if `enable_p2p`==`true`. Number of parallel p2p download batches to create
type: integer
reboot_at:
deprecated: true
description: For Switches and Gateways only and if `reboot`==`true`. Reboot start time in epoch seconds, default is `start_time`
examples:
- 1624399840
type: integer
reboot_datetime:
description: Process start date and time, ISO8601 format. Exclude timezone component if site local timezone needs to be used
examples:
- '2024-06-13 15:00:00-07:00'
type: string
reboot_strategy:
$ref: '#/components/schemas/upgrade_device_strategy'
rrm_first_batch_percentage:
description: For APs only and if `strategy`==`rrm`. Percentage of APs that need to be present in the first RRM batch
examples:
- 2
type: integer
rrm_max_batch_percentage:
description: For APs only and if `strategy`==`rrm`. Max percentage of APs that need to be present in each RRM batch
examples:
- 10
type: integer
rrm_mesh_upgrade:
$ref: '#/components/schemas/upgrade_device_rrm_mesh_upgrade'
rrm_node_order:
$ref: '#/components/schemas/upgrade_device_rrm_node_order'
rrm_slow_ramp:
description: For APs only and if `strategy`==`rrm`. True will make rrm batch sizes slowly ramp up
type: boolean
rules:
$ref: '#/components/schemas/upgrade_device_rules'
site_ids:
$ref: '#/components/schemas/upgrade_org_devices_site_ids'
snapshot:
default: false
description: For Junos devices only. Perform recovery snapshot after device is rebooted
type: boolean
start_datetime:
description: Process start date and time, ISO8601 format
examples:
- '2024-06-13 15:00:00-07:00'
type: string
start_time:
deprecated: true
description: Upgrade start time in epoch seconds, default is now
examples:
- 1624399840
type: integer
strategy:
$ref: '#/components/schemas/upgrade_device_strategy'
versions:
$ref: '#/components/schemas/upgrade_org_devices_versions'
type: object
device_version:
items:
$ref: '#/components/schemas/device_version_item'
type: array
uniqueItems: true
upgrade_devices_targets_downloaded:
description: List of devices MAC Addresses which have the firmware downloaded
items:
type: string
type: array
upgrade_device_rules:
description: "Rules used to identify devices which will be selected for upgrade. Device will be selected as long as it satisfies any one rule \nProperty key defines the type of matching, value is the string to match. e.g:\n * `match_name`: Device name must match the property value\n * `match_name[0:3]`: Device name must match the first 3 letters of the property value\n * `match_name[2:6]`: Device name must match the property value from the 2nd to the 6th letter\n * `match_model`: Device model must match the property value\n * `match_model[1:3]`: Device model must match the property value from the 1st to the 3rd letter\n * `match_role`: Device role must match the property value\n * `match_role[0:3]`: Device role must match the property value from the 1st to the 3rd letter\n * `match_evpn_role`: Device EVPN topology role must match the property value\n * `match_evpn_role[0:3]`: Device EVPN topology role must match the property value from the 1st to the 3rd letter"
examples:
- - match_model: AP43
match_name[2:8]: access
- match_model: AP45
items:
$ref: '#/components/schemas/upgrade_device_rule'
type: array
timestamp:
description: Epoch (seconds)
format: double
readOnly: true
type: number
upgrade_device_canary_phases:
default:
- 1
- 10
- 50
- 100
description: Only if `strategy`==`canary`. Phases for canary deployment. Each phase represents percentage of devices that need to be upgraded in that phase. default is [1, 10, 50, 100]
items:
type: integer
type: array
ssr_versions:
items:
$ref: '#/components/schemas/ssr_version'
type: array
uniqueItems: true
upgrade_devices_targets_reboot_in_progress:
description: List of devices MAC Addresses which are rebooting
items:
type: string
type: array
upgrade_devices_targets:
additionalProperties: false
properties:
download_requested:
$ref: '#/components/schemas/upgrade_devices_targets_download_requested'
downloaded:
$ref: '#/components/schemas/upgrade_devices_targets_downloaded'
downloading:
$ref: '#/components/schemas/upgrade_devices_targets_downloading'
failed:
$ref: '#/components/schemas/upgrade_devices_targets_failed'
reboot_in_progress:
$ref: '#/components/schemas/upgrade_devices_targets_reboot_in_progress'
rebooted:
$ref: '#/components/schemas/upgrade_devices_targets_rebooted'
scheduled:
$ref: '#/components/schemas/upgrade_devices_targets_scheduled'
skipped:
$ref: '#/components/schemas/upgrade_devices_targets_skipped'
total:
description: Count of devices part of this upgrade
type: integer
upgraded:
$ref: '#/components/schemas/upgrade_devices_targets_upgraded'
readOnly: true
type: object
response_mxedge_upgrade:
additionalProperties: false
properties:
channel:
minLength: 1
type: string
counts:
$ref: '#/components/schemas/mxedge_upgrade_response_counts'
id:
$ref: '#/components/schemas/id'
status:
minLength: 1
type: string
strategy:
minLength: 1
type: string
versions:
additionalProperties: true
type: object
required:
- status
- strategy
- versions
- channel
- id
- counts
type: object
upgrade_site_devices:
properties:
canary_phases:
$ref: '#/components/schemas/upgrade_device_canary_phases'
device_ids:
$ref: '#/components/schemas/upgrade_site_devices_device_ids'
enable_p2p:
description: For APs only. Whether to allow local AP-to-AP FW upgrade
type: boolean
force:
default: false
description: '`force`==`true` will force upgrade when requested version is same as running version'
type: boolean
max_failure_percentage:
$ref: '#/components/schemas/upgrade_devices_max_failure_percentage'
max_failures:
$ref: '#/components/schemas/upgrade_devices_max_failures'
models:
$ref: '#/components/schemas/upgrade_device_models'
p2p_cluster_size:
default: 10
description: For APs only and if `enable_p2p`==`true`.
examples:
- 0
minimum: 0
type: integer
p2p_parallelism:
description: For APs only and if `enable_p2p`==`true`. Number of parallel p2p download batches to create
type: integer
reboot:
default: false
description: For Switches and Gateways only (APs are automatically rebooted). Reboot device immediately after upgrade is completed
type: boolean
reboot_at:
description: For Switches and Gateways only and if `reboot`==`true`. Reboot start time in epoch seconds, default is `start_time`
examples:
- 1624399840
type: integer
rrm_first_batch_percentage:
description: For APs only and if `strategy`==`rrm`. Percentage of APs that need to be present in the first RRM batch
examples:
- 2
type: integer
rrm_max_batch_percentage:
description: For APs only and if `strategy`==`rrm`. Max percentage of APs that need to be present in each RRM batch
examples:
- 10
type: integer
rrm_mesh_upgrade:
$ref: '#/components/schemas/upgrade_device_rrm_mesh_upgrade'
rrm_node_order:
$ref: '#/components/schemas/upgrade_device_rrm_node_order'
rrm_slow_ramp:
description: For APs only and if `strategy`==`rrm`. True will make rrm batch sizes slowly ramp up
type: boolean
rules:
$ref: '#/components/schemas/upgrade_device_rules'
snapshot:
default: false
description: For Junos devices only. Perform recovery snapshot after device is rebooted
type: boolean
start_time:
description: Upgrade start time in epoch seconds, default is now
examples:
- 1624399840
type: integer
strategy:
$ref: '#/components/schemas/upgrade_device_strategy'
version:
description: Specific version / stable, default is to use the latest available version
examples:
- 3.1.5
type: string
type: object
upgrade_org_devices_upgrade:
additionalProperties: false
properties:
site_id:
$ref: '#/components/schemas/site_id'
upgrade:
$ref: '#/components/schemas/upgrade_org_devices_upgrade_info'
type: object
upgrade_device_strategy:
default: big_bang
description: 'enum: `big_bang` (upgrade all at once), `canary`, `rrm` (APs only), `serial` (one at a time)'
enum:
- big_bang
- canary
- rrm
- serial
type: string
device_type:
description: 'enum: `ap`, `gateway`, `switch`'
enum:
- ap
- gateway
- switch
type: string
response_http401:
additionalProperties: false
properties:
detail:
examples:
- Authentication credentials were not provided.
type: string
type: object
ssr_upgrade_multi_device_ids:
description: List of 128T device IDs to upgrade
items:
format: uuid
type: string
type: array
upgrade_org_devices_upgrade_infos:
items:
$ref: '#/components/schemas/upgrade_org_devices_upgrade'
type: array
upgrade_org_devices_upgrade_info:
additionalProperties: false
properties:
id:
$ref: '#/components/schemas/id'
start_time:
examples:
- 1717658765
type: integer
status:
$ref: '#/components/schemas/upgrade_device_status'
targets:
$ref: '#/components/schemas/upgrade_devices_targets'
type: object
response_ssr_upgrade:
additionalProperties: false
properties:
channel:
minLength: 1
type: string
counts:
$ref: '#/components/schemas/response_ssr_upgrade_counts'
device_type:
type: string
id:
$ref: '#/components/schemas/id'
status:
minLength: 1
type: string
strategy:
minLength: 1
type: string
versions:
additionalProperties:
type: string
type: object
required:
- status
- strategy
- versions
- channel
- id
- counts
- device_type
type: object
upgrade_org_devices_versions:
items:
$ref: '#/components/schemas/upgrade_org_devices_version'
type: array
upgrade_info_status:
description: 'enum: `error`, `inprogress`, `scheduled`, `starting`, `success`'
enum:
- error
- inprogress
- scheduled
- starting
- success
type: string
upgrade_org_devices_item_site_upgrades:
items:
$ref: '#/components/schemas/upgrade_org_devices_item_site_upgrade'
type: array
upgrade_devices_targets_download_requested:
description: List of devices MAC Addresses which cloud has requested to download firmware
items:
type: string
type: array
device_upgrade:
properties:
reboot:
default: false
description: For Switches and Gateways only (APs are automatically rebooted). Reboot device immediately after upgrade is completed
type: boolean
reboot_at:
description: For Switches and Gateways only and if `reboot`==`true`. Reboot start time in epoch seconds, default is `start_time`
type: integer
snapshot:
default: false
description: For Junos devices only. Perform recovery snapshot after device is rebooted
type: boolean
start_time:
description: Firmware download start time in epoch
type: integer
version:
default: stable
description: Specific version / `stable`, default is to use the latest
type: string
required:
- version
type: object
upgrade_devices_targets_scheduled:
description: List of devices MAC Addresses which cloud has scheduled an upgrade for
items:
type: string
type: array
version_string:
properties:
version:
type: string
type: object
mxedge_upgrade_multi:
properties:
allow_downgrades:
$ref: '#/components/schemas/mxedge_upgrade_multi_allow_downgrades'
canary_phases:
$ref: '#/components/schemas/upgrade_device_canary_phases'
channel:
$ref: '#/components/schemas/mxedge_upgrade_channel'
distro:
description: Distro upgrade, optional, to specific codename (e.g. bullseye) with highest qualified versions
type: string
max_failure_percentage:
default: 5
description: Failure threshold before we stop the upgrade and mark it as failed
type: integer
mxedge_ids:
$ref: '#/components/schemas/mxedge_upgrade_multi_mxedge_ids'
start_time:
description: Upgrade start time in epoch seconds, default is now
type: integer
strategy:
$ref: '#/components/schemas/mxedge_upgrade_strategy'
versions:
$ref: '#/components/schemas/mxedge_upgrade_version'
required:
- mxedge_ids
type: object
response_upgrade_org_devices:
additionalProperties: false
properties:
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'
strategy:
$ref: '#/components/schemas/upgrade_device_strategy'
target_version:
description: Version to upgrade to
examples:
- 0.14.29411
type: string
upgrades:
$ref: '#/components/schemas/upgrade_org_devices_upgrade_infos'
type: object
upgrade_devices_plans:
additionalProperties:
$ref: '#/components/schemas/upgrade_devices_plan'
description: If `strategy`!=`big_bang`, a dictionary of phase number to devices part of that phase
type: object
upgrade_site_devices_counts:
additionalProperties: false
properties:
download_requested:
description: Count of devices which cloud has requested to download firmware
type: integer
downloaded:
description: Count of ap's which have the firmware downloaded
type: integer
failed:
description: Count of devices which have failed to upgrade
type: integer
reboot_in_progress:
description: Count of devices which are rebooting
type: integer
rebooted:
description: Count of devices which have rebooted successfully
type: integer
scheduled:
description: Count of devices which cloud has scheduled an upgrade for
type: integer
skipped:
description: Count of devices which skipped upgrade since requested version was same as running version. Use force to always upgrade
type: integer
total:
description: Count of devices part of this upgrade
type: integer
upgraded:
description: Count of devices which have upgraded successfully
type: integer
readOnly: true
type: object
upgrade_device_models:
description: Models which will be selected for upgrade
items:
type: string
type: array
ssr_version_channel:
default: stable
description: 'enum: `stable`, `beta`, `alpha`'
enum:
- alpha
- beta
- stable
type: string
upgrade_org_devices_item:
additionalProperties: false
properties:
id:
$ref: '#/components/schemas/id'
site_upgrades:
$ref: '#/components/schemas/upgrade_org_devices_item_site_upgrades'
type: object
mxedge_upgrade_multi_allow_downgrades:
additionalProperties: false
description: Whether downgrade is allowed when running version is higher than expected version for each service
properties:
mxagent:
default: false
type: boolean
mxdas:
default: false
type: boolean
mxocproxy:
default: false
type: boolean
radsecproxy:
default: false
type: boolean
tunterm:
default: false
type: boolean
type: object
response_site_device_upgrade_canary_phases:
default:
- 1
- 10
- 50
- 100
description: phases for canary deployment. Each phase represents percentage of devices that need to be upgraded in that phase.
items:
type: integer
type: array
mxedge_upgrade_response_counts:
additionalProperties: false
properties:
failed:
type: integer
queued:
type: integer
success:
type: integer
upgrading:
type: integer
required:
- queued
- upgrading
- success
- failed
type: object
upgrade_org_devices_download_strategy:
default: big_bang
description: "enum:\n * `big_bang`: download all at once, no orchestration\n * `serial`: one at a time'\n * `canary`: upgrade in phases"
enum:
- canary
- big_bang
- serial
type: string
device_version_item:
additionalProperties: false
properties:
model:
description: Device model (as seen in the device stats)
type: string
tag:
description: Annotation, stable / beta / alpha. Or it can be empty or nothing which is likely a dev build
type: string
version:
description: Firmware version
type: string
required:
- model
- version
type: object
response_ssr_upgrade_counts:
additionalProperties: false
properties:
failed:
type: integer
queued:
type: integer
success:
type: integer
upgrading:
type: integer
required:
- queued
- upgrading
- success
- failed
type: object
ssr_upgrade:
properties:
channel:
$ref: '#/components/schemas/ssr_upgrade_channel'
reboot_at:
description: Reboot start time in epoch seconds, default is start_time, -1 disables reboot
type: integer
start_time:
description: 128T firmware download start time in epoch seconds, default is now, -1 disables download
type: integer
version:
default: stable
description: 128T firmware version to upgrade (e.g. 5.3.0-93)
minLength: 1
type: string
required:
- version
type: object
ssr_version:
additionalProperties: false
properties:
default:
readOnly: true
type: boolean
package:
readOnly: true
type: string
tags:
$ref: '#/components/schemas/strings'
version:
readOnly: true
type: string
required:
- package
- version
type: object
response_ssr_upgrades:
items:
$ref: '#/components/schemas/response_ssr_upgrade'
type: array
mxedge_upgrade_strategy:
default: big_bang
description: "enum:\n * `big_bang`: upgrade all at once, no orchestration\n * `serial`: one at a time'\n * `canary`: upgrade in phases"
enum:
- canary
- big_bang
- serial
type: string
upgrade_devices_max_failure_percentage:
default: 5
description: If `strategy`!=`big_bang`. percentage of failures allowed across the entire upgrade
maximum: 100
minimum: 0
type: integer
upgrade_devices_targets_skipped:
description: List of devices MAC Addresses which skipped upgrade since requested version was same as running version. Use force to always upgrade
items:
type: string
type: array
response_device_upgrade:
additionalProperties: false
properties:
status:
$ref: '#/components/schemas/upgrade_info_status'
timestamp:
$ref: '#/components/schemas/timestamp'
required:
- timestamp
- status
type: object
response_upgrade_id:
additionalProperties: false
properties:
upgrade_id:
examples:
- 4316c116-0acb-4c43-8f06-6723154e741e
format: uuid
type: string
required:
- upgrade_id
type: object
response_http429:
additionalProperties: false
properties:
detail:
examples:
- Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
type: string
type: object
upgrade_org_devices_site_ids:
description: Only devices belonging to these sites will be selected for upgrade. Will be ignored if `all_sites`==`true`
items:
format: uuid
type: string
type: array
ssr_upgrade_channel:
default: stable
description: 'upgrade channel to follow. enum: `alpha`, `beta`, `stable`'
enum:
- alpha
- beta
- stable
type: string
upgrade_device_status:
description: 'status upgrade is in. enum: `cancelled`, `completed`, `created`, `downloaded`, `downloading`, `failed`, `upgrading`, `queued`'
enum:
- cancelled
- completed
- created
- downloaded
- downloading
- failed
- queued
- upgrading
type: string
upgrade_site_devices_device_ids:
description: id's of devices which will be selected for upgrade
items:
format: uuid
type: string
type: array
ssr_upgrade_strategy:
default: big_bang
description: "enum:\n * `big_bang`: upgrade all at once\n * `serial`: one at a time"
enum:
- big_bang
- serial
type: string
upgrade_devices_max_failures:
description: If `strategy`==`canary`. Number of failures allowed within each phase. Only applicable for `canary`. Array length should be same as `canary_phases`. Will be used if provided, else `max_failure_percentage` will be used
items:
type: integer
type: array
upgrade_device_rule:
additionalProperties:
type: string
type: object
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
type: string
upgrade_org_devices_version_model_version:
additionalProperties:
type: string
description: If `firmware_type`==`junos`, used to select different versions for different models (Overrides `version` for the specified models). Property key is the hadware model (e.g. `EX4400-24MP`), Property value is the firmware version (e.g. `23.4R1.9`)
type: object
upgrade_org_devices_version_firmware_type:
description: 'enum: `ap`, `junos`'
enum:
- ap
- junos
type: string
upgrade_devices_plan:
description: List of Devices MAC Addresses part of the phase
items:
type: string
type: array
response_http403:
additionalProperties: false
properties:
detail:
examples:
- You do not have permission to perform this action.
type: string
type: object
upgrade_device_rrm_mesh_upgrade:
default: sequential
description: 'For APs only and if `strategy`==`rrm`. Whether to upgrade mesh AP’s parallelly or sequentially at the end of the upgrade. enum: `parallel`, `sequential`'
enum:
- parallel
- sequential
type: string
mxedge_upgrade_channel:
default: stable
description: 'upgrade channel to follow. enum: `alpha`, `beta`, `stable`'
enum:
- alpha
- beta
- stable
type: string
site_id:
examples:
- 441a1214-6928-442a-8e92-e1d34b8ec6a6
format: uuid
readOnly: true
type: string
upgrade_devices_targets_failed:
description: List of devices MAC Addresses which have failed to upgrade
items:
type: string
type: array
upgrade_org_devices_list:
items:
$ref: '#/components/schemas/upgrade_org_devices_item'
type: array
response_http404:
additionalProperties: false
properties:
id:
type: string
type: object
upgrade_devices_targets_upgraded:
description: Count of devices which have upgraded successfully
items:
type: string
type: array
mxedge_upgrade_version:
additionalProperties: false
description: Version to upgrade for each service, `current` / `latest` / `default` / specific version (e.g. `2.5.100`).\nIgnored if distro upgrade, `tunterm`, `radsecproxy`, `mxagent`, `mxocproxy`, `mxdas` or `mxnacedge`
properties:
mxagent:
default: current
type: string
mxdas:
default: current
type: string
mxocproxy:
default: current
type: string
radsecproxy:
default: current
type: string
tunterm:
default: current
type: string
required:
- mxagent
- tunterm
type: object
device_type_default_ap:
default: ap
description: 'enum: `ap`, `gateway`, `switch`'
enum:
- ap
- gateway
- switch
type: string
response_http400:
additionalProperties: false
properties:
detail:
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
type: string
type: object
upgrade_devices_targets_rebooted:
description: List of devices MAC Addresses which have rebooted successfully
items:
type: string
type: array
response_mxedge_upgrades:
items:
$ref: '#/components/schemas/response_mxedge_upgrade'
type: array
ssr_upgrade_multi:
properties:
channel:
$ref: '#/components/schemas/ssr_upgrade_channel'
device_ids:
$ref: '#/components/schemas/ssr_upgrade_multi_device_ids'
reboot_at:
description: Reboot start time in epoch seconds, default is start_time, -1 disables reboot
type: integer
start_time:
description: 128T firmware download start time in epoch seconds, default is now, -1 disables download
type: integer
strategy:
$ref: '#/components/schemas/ssr_upgrade_strategy'
version:
description: 128T firmware version to upgrade (e.g. 5.3.0-93)
minLength: 1
type: string
required:
- device_ids
type: object
response_ssr_upgrade_status:
additionalProperties: false
properties:
channel:
minLength: 1
type: string
device_type:
type: string
id:
$ref: '#/components/schemas/id'
status:
minLength: 1
type: string
targets:
$ref: '#/components/schemas/response_ssr_upgrade_status_targets'
versions:
additionalProperties: true
type: object
required:
- status
- versions
- channel
- id
- targets
type: object
upgrade_org_devices_item_site_upgrade:
additionalProperties: false
properties:
site_id:
$ref: '#/components/schemas/site_id'
upgrade_id:
examples:
- ebbdbd0b-1bcf-4e55-8a6a-3416049a52b1
format: uuid
type: string
type: object
response_site_device_upgrades:
items:
$ref: '#/components/schemas/response_site_device_upgrades_item'
type: array
upgrade_org_devices_models:
description: Only devices of these model types will be selected for upgrade
items:
$ref: '#/components/schemas/strings'
type: array
parameters:
device_id:
in: path
name: device_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
org_id:
in: path
name: org_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
upgrade_id:
in: path
name: upgrade_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
site_id:
in: path
name: site_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
ssr_version_channel:
description: SSR version channel
in: query
name: channel
schema:
$ref: '#/components/schemas/ssr_version_channel'
device_mac:
in: path
name: device_mac
required: true
schema:
examples:
- 0000000000ab
pattern: ^[0-9a-fA-F]{12}$
type: string
examples:
HTTP403Example:
value:
detail: You do not have permission to perform this action.
SsrUpgradeStatusExample:
value:
channel: stable
device_type: gateway
id: 5cbcee0a-c620-4bb4-a25e-15000934e9d8
status: upgrading
targets:
failed: []
queued: []
success: []
upgrading:
- 8e525f1d-4178-4ae1-a988-2b0176855e55
versions: {}
DeviceVersionExample:
value:
- model: AP41
tag: stable
version: v0.1.543
- model: AP21
version: v0.1.545
UpgradeIdExample:
value:
upgrade_id: 4316c116-0acb-4c43-8f06-6723154e741e
UpgradeDeviceExample:
value:
status: inprogress
timestamp: 1428949501
SsrUpgradeExample:
value:
channel: stable
counts:
failed: 0
queued: 1
success: 0
upgrading: 1
device_type: gateway
id: ceef2c8a-e2e6-447a-8b27-cb4f3ec1adae
status: upgrading
strategy: serial
versions: {}
SsrUpgradesArrayExample:
value:
- channel: stable
counts:
failed: 0
queued: 1
success: 0
upgrading: 1
device_type: gateway
id: ceef2c8a-e2e6-447a-8b27-cb4f3ec1adae
status: upgrading
strategy: serial
versions: {}
UpgradeSiteDevicesListExample:
value:
- counts:
download_requested: 0
downloaded: 0
failed: 0
reboot_in_progress: 0
rebooted: 0
skipped: 0
total: 0
enable_p2p: true
force: true
id: 472f6eca-6276-4993-bfeb-53cbbbba6f28
start_time: 0
status: created
strategy: big_bang
target_version: string
SsrVersionsExample:
value:
- default: true
package: SSR
version: 5.3.1-17
HTTP429Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
OrgDeviceUpgradeExample:
value:
enable_p2p: true
force: true
id: 31223085-405d-4b64-8aea-9c5b98098b4b
strategy: big_bang
target_version: 0.14.29411
upgrades:
- site_id: 1bbe6e79-2583-403c-be1a-9881b4691ab6
upgrade:
id: 473f6eca-6276-4993-bfeb-53cbbbba6f18
start_time: 1717658765
status: upgrading
targets:
download_requested:
- 5c5b3550bd2e
downloaded:
- 003e7316ff9e
total: 4
upgraded:
- 5c5b3550bd2e
- 003e7316ff9e
OrgDeviceUpgradeListExample:
value:
- id: 466f6eca-6276-4993-bfeb-53cbbbba6f88
site_upgrades:
- site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
upgrade_id: 174bda0-06a3-40ee-b918-d9cbde303690
HTTP400Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
SiteDeviceUpgradeExample:
value:
canary_phases:
- 1
- 10
- 50
- 100
current_phase: 0
enable_p2p: true
force: false
id: b910de88-0e0e-43a0-b20e-a43aa8788917
max_failure_percentage: 5
max_failures:
- 5
- 5
- 5
- 5
p2p_cluster_size: 10
p2p_parallelism: 2
reboot_at: 1738233315
start_time: 1738232698
status: created
strategy: canary
target_version: 0.14.29633
targets:
downloaded:
- 30783a619182
total: 2
upgraded:
- a8378280da5e
upgrade_plan:
'1':
- 30783a619182
'2':
- a8378280da5e
HTTP401Example:
value:
detail: Authentication credentials were not provided.
responses:
OrgDeviceUpgradeList:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/OrgDeviceUpgradeListExample'
schema:
$ref: '#/components/schemas/upgrade_org_devices_list'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/OrgDeviceUpgradeListExample'
schema:
$ref: '#/components/schemas/upgrade_org_devices_list'
description: OK
SsrUpgradeStatus:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradeStatusExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrade_status'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradeStatusExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrade_status'
description: OK
HTTP403:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP403Example'
schema:
$ref: '#/components/schemas/response_http403'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP403Example'
schema:
$ref: '#/components/schemas/response_http403'
description: Permission Denied
UpgradeSiteDevicesList:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/UpgradeSiteDevicesListExample'
schema:
$ref: '#/components/schemas/response_site_device_upgrades'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/UpgradeSiteDevicesListExample'
schema:
$ref: '#/components/schemas/response_site_device_upgrades'
description: Example response
SsrVersions:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SsrVersionsExample'
schema:
$ref: '#/components/schemas/ssr_versions'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SsrVersionsExample'
schema:
$ref: '#/components/schemas/ssr_versions'
description: OK
OK:
description: OK
HTTP401:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP401Example'
schema:
$ref: '#/components/schemas/response_http401'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP401Example'
schema:
$ref: '#/components/schemas/response_http401'
description: Unauthorized
SsrUpgradesArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradesArrayExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrades'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradesArrayExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrades'
description: Example response
UpgradeId:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/UpgradeIdExample'
schema:
$ref: '#/components/schemas/response_upgrade_id'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/UpgradeIdExample'
schema:
$ref: '#/components/schemas/response_upgrade_id'
description: OK
MxEdgeUpgradesArray:
content:
application/json:
schema:
$ref: '#/components/schemas/response_mxedge_upgrades'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/response_mxedge_upgrades'
description: Example response
UpgradeDevice:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/UpgradeDeviceExample'
schema:
$ref: '#/components/schemas/response_device_upgrade'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/UpgradeDeviceExample'
schema:
$ref: '#/components/schemas/response_device_upgrade'
description: OK
MxEdgeUpgrade:
content:
application/json:
schema:
$ref: '#/components/schemas/response_mxedge_upgrade'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/response_mxedge_upgrade'
description: Example response
DeviceVersion:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/DeviceVersionExample'
schema:
$ref: '#/components/schemas/device_version'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/DeviceVersionExample'
schema:
$ref: '#/components/schemas/device_version'
description: OK
SiteDeviceUpgrade:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SiteDeviceUpgradeExample'
schema:
$ref: '#/components/schemas/response_site_device_upgrade'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SiteDeviceUpgradeExample'
schema:
$ref: '#/components/schemas/response_site_device_upgrade'
description: OK
HTTP404:
content:
application/json:
schema:
$ref: '#/components/schemas/response_http404'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/response_http404'
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
HTTP429:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP429Example'
schema:
$ref: '#/components/schemas/response_http429'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP429Example'
schema:
$ref: '#/components/schemas/response_http429'
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
SsrUpgrade:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradeExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrade'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SsrUpgradeExample'
schema:
$ref: '#/components/schemas/response_ssr_upgrade'
description: Example response
OrgDeviceUpgrade:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/OrgDeviceUpgradeExample'
schema:
$ref: '#/components/schemas/response_upgrade_org_devices'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/OrgDeviceUpgradeExample'
schema:
$ref: '#/components/schemas/response_upgrade_org_devices'
description: OK
HTTP400:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP400Example'
schema:
$ref: '#/components/schemas/response_http400'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP400Example'
schema:
$ref: '#/components/schemas/response_http400'
description: Bad Syntax
securitySchemes:
apiToken:
description: "Like many other API providers, it’s also possible to generate API Tokens to be used (in HTTP Header) for authentication. An API token ties to a Admin with equal or less privileges.\n\n**Format**:\n API Token value format is `Token {apitoken}`\n\n**Notes**:\n* an API token generated for a specific admin has the same privilege as the user\n* an API token will be automatically removed if not used for > 90 days\n* SSO admins cannot generate these API tokens. Refer Org level API tokens which can have privileges of a specific Org/Site for more information."
in: header
name: Authorization
type: apiKey
basicAuth:
description: While our current UI uses Session / Cookie-based authentication, it’s also possible to do Basic Auth.
scheme: basic
type: http
csrfToken:
description: "This protects the website against [Cross Site Request Forgery](https://en.wikipedia.org/wiki/Cross-site_request_forgery), all the POST / PUT / DELETE APIs needs to have CSRF token in the AJAX Request header when using Login/Password authentication (with or without MFA)\n\n\nThe CSRF Token is sent back by Mist in the Cookies from the Login Response API Call:\n`cookies[csrftoken]` \n\nThe CSRF Token must be added in the HTTP Request Headers:\n```\nX-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx\n```"
in: header
name: X-CSRFToken
type: apiKey