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 Installer 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: "In a typical enterprise, a separate group of people, Installers, are responsible for install new devices. May it be a new installation (e.g. new stores), a replacement installation (e.g. replacing Cisco APs with Mist APs), or addition (e.g. adding new APs for better coverage). Instead of granting them Admin/Write privilege, it's more desirable to grant them minimum privileges to do the initial provisioning so they cannot read sensible information (e.g. PSK of a WLAN), or change configs of running APs.\nAt a high level, Installer APs try to achieve the following:\n1. identifying a device by MAC (that\\u2019\\ \ns what they see)\n2. they can only touch configurations of the devices they\\u2019\\\nre installing\n3. allow the following configurations: \n * name * site assignment \n * device profile assignment \n * map and location (x/y) assignment \n * claim (if not already in the inventory) \n * replace existing device with the device being installed\n\n**Grace Period**\n\nGrace period provides a dynamic way to limit what devices / sites installer can work on. Generally installers work on recent deployments - bringing up new sites, add newly claimed devices to new / existing sites. They make mistakes, too, and may need to further tweak some of the parameters. Default grace period is 7 days and can be set from 1 day to 365 days."
name: Installer
paths:
/api/v1/installer/orgs/{org_id}/alarmtemplates:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of alarm templates
operationId: listInstallerAlarmTemplates
responses:
'200':
$ref: '#/components/responses/InstallerAlarmtemplates'
'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: listInstallerAlarmTemplates
tags:
- Installer
/api/v1/installer/orgs/{org_id}/deviceprofiles:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Device Profiles
operationId: listInstallerDeviceProfiles
parameters:
- in: query
name: type
schema:
$ref: '#/components/schemas/device_type_default_ap'
responses:
'200':
$ref: '#/components/responses/InstallerDeviceProfiles'
'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: listInstallerDeviceProfiles
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of recently claimed devices
operationId: listInstallerListOfRecentlyClaimedDevices
parameters:
- description: Device Model
in: query
name: model
schema:
examples:
- AP43
type: string
- description: Site Name
in: query
name: site_name
schema:
examples:
- SJ1
type: string
- description: Site ID
in: query
name: site_id
schema:
examples:
- 72771e6a-6f5e-4de4-a5b9-1266c4197811
format: uuid
type: string
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/InstallerDevicesArray'
'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: listInstallerListOfRecentlyClaimedDevices
tags:
- Installer
post:
description: This mirrors `POST /api/v1/orgs/{org_id}/inventory` (see Inventory API)
operationId: claimInstallerDevices
requestBody:
content:
application/json:
examples:
Example:
value:
- 6JG8E-PTFV2-A9Z2N
- DVH4V-SNMSZ-PDXBR
schema:
$ref: '#/components/schemas/claim_codes'
description: Request Body
responses:
'200':
$ref: '#/components/responses/OrgInventoryAdd'
'400':
$ref: '#/components/responses/OrgInventoryAdd'
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/HTTP404'
'429':
$ref: '#/components/responses/HTTP429'
summary: claimInstallerDevices
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
delete:
description: Unassign recently claimed devices
operationId: unassignInstallerRecentlyClaimedDevice
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: unassignInstallerRecentlyClaimedDevice
tags:
- Installer
put:
description: "Provision or Replace a device \n\nIf replacing_mac is in the request payload, other attributes are ignored, we attempt to replace existing device (with mac replacing_mac) with the inventory device being configured. The replacement device must be in the inventory but not assigned, and the replacing_mac device must be assigned to a site, and satisfy grace period requirements. The Device replaced will become unassigned."
operationId: provisionInstallerDevices
requestBody:
content:
application/json:
examples:
Example:
value:
deviceprofile_name: SJ1
height: 2.7
name: SJ1-AP1
orientation: 90
site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
site_name: SJ1
x: 150
y: 300
schema:
$ref: '#/components/schemas/installer_provision_device'
description: Request Body
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/OrgInventoryUnassignFailed'
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/OrgInventoryUnassignNotFound'
'429':
$ref: '#/components/responses/HTTP429'
summary: provisionInstallerDevices
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/locate:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
post:
description: Locate a Device by blinking it’s LED, it’s a persisted state that has to be stopped by calling Stop Locating API
operationId: startInstallerLocateDevice
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: startInstallerLocateDevice
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/unlocate:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
post:
description: Stop it
operationId: stopInstallerLocateDevice
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: stopInstallerLocateDevice
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/{image_name}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/image_name'
- $ref: '#/components/parameters/device_mac'
delete:
description: Delete image
operationId: deleteInstallerDeviceImage
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: deleteInstallerDeviceImage
tags:
- Installer
post:
description: Add image
operationId: addInstallerDeviceImage
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/map_site_import_file'
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: addInstallerDeviceImage
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{fpc0_mac}/vc:
parameters:
- $ref: '#/components/parameters/org_id'
- description: FPC0 MAC Address
in: path
name: fpc0_mac
required: true
schema:
examples:
- aff827549235
type: string
get:
description: 'Get VC Status
The API returns a combined view of the VC status which includes topology and stats'
operationId: getInstallerDeviceVirtualChassis
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: getInstallerDeviceVirtualChassis
tags:
- Installer
post:
description: 'For models (e.g. EX3400 and up) having dedicated VC ports, it is easier to form a VC by just connecting cables with the dedicated VC ports. Cloud will detect the new VC and update the inventory.
In case that the user would like to choose the dedicated switch as a VC master or for EX2300-C-12P and EX2300-C-12T which doesn''t have dedicated VC ports, below are procedures to automate the VC creation:
1. Power on the switch that is chosen as the VC master first. And then powering on the other member switches.
2. Claim or adopt all these switches under the same organization’s Inventory
3. Assign these switches into the same Site
4. Invoke vc command on the switch chosen to be the VC master. For EX2300-C-12P, VC ports will be created automatically.
5. Connect the cables to the VC ports for these switches
6. Wait for the VC to be formed. The Org’s inventory will be updated for the new VC.'
operationId: createInstallerVirtualChassis
requestBody:
content:
application/json:
examples:
create-a-VC-with-three-members:
value:
members:
- mac: aff827549235
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
- mac: 8396cd006c8c
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: backup
- mac: 8396cd00888c
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
create-a-pre-provisioned-VC-with-three-members:
value:
members:
- mac: aff827549235
member_id: 0
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
- mac: 8396cd006c8c
member_id: 1
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
- mac: 8396cd00888c
member_id: 2
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: backup
preprovisioned: true
schema:
$ref: '#/components/schemas/virtual_chassis_config'
description: Request Body
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: createInstallerVirtualChassis
tags:
- Installer
put:
description: "The VC creation and adding member switch API will update the device’ s virtual chassis config which is applied after VC is formed to create JUNOS pre-provisioned virtual chassis configuration.\n\n## Change to use preprovisioned VC\nTo switch the VC to use preprovisioned VC, enable preprovisioned in virtual_chassis config. Both vc_role master and backup will be matched to routing-engine role in Junos preprovisioned VC config.\n\nIn this config, fpc0 has to be the same as the mac of device_id. Use renumber if you want to replace fpc0 which involves device_id change.\n\nNotice: to configure preprovisioned VC, every member of the VC must be in the inventory.\n\n## Add new members\nFor models (e.g. EX4300 and up) having dedicated VC ports, it is easier to add new member switches into a VC by just connecting cables with the dedicated VC ports. Cloud will detect the new members and update the inventory.\n\nFor EX2300 VC, adding new members requires to follow the procedures below:\n1. Powering on the new member switches and ensuring cables are not connected to any VC ports.\n2. Claim or adopt all new member switches under the VC’s organization Inventory\n3. Assign all new member switches to the same Site as the VC\n4. Invoke vc command to add switches to the VC.\n5. Connect the cables to the VC ports for these switches\n6. After a while, the Org’s Inventory shows this new switches has been added into the VC.\n\n## Removing member switch\nTo remove a member switch from the VC, following the procedures below:\n\n1. Ensuring the VC is connected to the cloud first\n2. Unplug the cable from the VC port of the switch\n3. Waiting for the VC state (vc_state) of this switch is changed to not-present\n4. Invoke update_vc with remove to remove this switch from the VC\n5. The Org’s Inventory shows the switch is removed.\n\nPlease notice that member ID 0 (fpc0) cannot be removed. When a VC has two switches left, unplugging the cable may result in the situation that fpc0 becomes a line card (LC). When this situation is happening, please re-plug in the cable, wait for both switches becoming present (show virtual-chassis) and then removing the cable again.\n\n## Renumber a member switch\nWhen a member switch doesn't' work properly and needed to be replaced, the renumber API could be used. The following two types of renumber are supported:\n\n1. Replace a non-fpc0 member switch\n2. Replace fpc0. When fpc0 is replaced, PAPI device config and JUNOS config will be both updated.\n\nFor renumber to work, the following procedures are needed: \n1. Ensuring the VC is connected to the cloud and the state of the member switch to be replaced must be non present. \n2. Adding the new member switch to the VC \n3. Waiting for the VC state (vc_state) of this VC to be updated to API server \n4. Invoke vc with renumber to replace the new member switch from fpc X to\n\n## Perprovision VC members\nBy specifying \"preprovision\" op, you can convert the current VC to pre-provisioned mode, update VC members as well as specify vc_ports when adding new members for device models without dedicated vc ports. Use renumber for fpc0 replacement which involves device_id change.\n\nNote: \n1. vc_ports is used for adding new members and not needed if * the device model has dedicated vc ports, or * no new member is added \n2. New VC members to be added should exist in the same Site as the VC\n\nUpdate Device’s VC config can achieve similar purpose by directly modifying current virtual_chassis config. However, it cannot fulfill requests to enabling vc_ports on new members that are yet to belong to current VC."
operationId: updateInstallerVirtualChassisMember
requestBody:
content:
application/json:
examples:
adding-two-new-switches-as-line-cards-into-the-VC:
value:
members:
- mac: aff827549235
member_id: 2
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
- mac: 8396cd00777c
member_id: 3
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
op: add
convert-to-pre-provisioned-VC:
value:
member: 0
members:
- mac: string
member_id: 0
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
new-member: 0
op: add
removing-two-switches-from-VC:
value:
members:
- member: 2
- member: 3
op: remove
renumber-member-ID-3-to-member-ID-2:
value:
member: 3
new-member: 2
op: renumber
schema:
$ref: '#/components/schemas/virtual_chassis_update'
description: Request Body
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: updateInstallerVirtualChassisMember
tags:
- Installer
/api/v1/installer/orgs/{org_id}/rftemplates:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of RF Templates
operationId: listInstallerRfTemplatesNames
responses:
'200':
$ref: '#/components/responses/InstallerRftemplatesArray'
'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: listInstallerRfTemplatesNames
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sitegroups:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Site Groups
operationId: listInstallerSiteGroups
responses:
'200':
$ref: '#/components/responses/InstallerSitegroupsArray'
'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: listInstallerSiteGroups
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Sites
operationId: listInstallerSites
responses:
'200':
$ref: '#/components/responses/InstallerSitesArray'
'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: listInstallerSites
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
put:
description: Often the Installers are asked to assign Devices to Sites. The Sites can either be pre-created or created/modified by the Installer. If this is an update, the same grace period also applies.
operationId: createOrUpdateInstallerSites
requestBody:
content:
application/json:
examples:
Example:
value:
address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
country_code: US
latlng:
lat: 37.295833
lng: -122.032946
name: string
rftemplate_name: rftemplate1
sitegroup_names:
- sg1
- sg2
timezone: America/Los_Angeles
schema:
$ref: '#/components/schemas/installer_site'
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: createOrUpdateInstallerSites
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
get:
description: Get List of Maps
operationId: listInstallerMaps
responses:
'200':
$ref: '#/components/responses/MapsArray'
'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: listInstallerMaps
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps/import:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
post:
description: Import data from files is a multipart POST which has an file, an optional json, and an optional csv, to create floorplan, assign & place ap if name or mac matches
operationId: importInstallerMap
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/map_site_import_file'
responses:
'200':
$ref: '#/components/responses/MapImport'
'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: importInstallerMap
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps/{map_id}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
- $ref: '#/components/parameters/map_id'
delete:
description: Delete Map
operationId: deleteInstallerMap
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: deleteInstallerMap
tags:
- Installer
post:
description: Create a MAP
operationId: createInstallerMap
requestBody:
content:
application/json:
examples:
Example:
value:
height: 0
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
name: string
orientation: 0
origin_x: 0
origin_y: 0
ppm: 0
sitesurvey_path:
- coordinate: string
name: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
type: image
view: roadmap
wall_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
wayfinding:
micello:
account_key: string
default_level_id: 0
snap_to_path: true
wayfinding_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
width: 0
schema:
$ref: '#/components/schemas/map'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Map'
'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: createInstallerMap
tags:
- Installer
put:
description: Update map
operationId: updateInstallerMap
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/map'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Map'
'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: updateInstallerMap
tags:
- Installer
/api/v1/installer/sites/{site_name}/optimize:
parameters:
- $ref: '#/components/parameters/site_name'
get:
description: After installation is considered complete (APs are placed on maps, all powered up), you can trigger an optimize operation where RRM will kick in (and maybe other things in the future) before it’s automatically scheduled.
operationId: optimizeInstallerRrm
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: optimizeInstallerRrm
tags:
- Installer
components:
schemas:
response_virtual_chassis_config:
additionalProperties: false
properties:
config_type:
readOnly: true
type: string
id:
$ref: '#/components/schemas/id'
locating:
readOnly: true
type: boolean
mac:
type: string
members:
$ref: '#/components/schemas/stats_switch_module_stat'
model:
readOnly: true
type: string
num_routing_engines:
description: routing-engine count
examples:
- 1
type: integer
org_id:
$ref: '#/components/schemas/org_id'
serial:
readOnly: true
type: string
site_id:
$ref: '#/components/schemas/site_id'
status:
readOnly: true
type: string
type:
type: string
vc_mac:
readOnly: true
type: string
type: object
claim_codes:
description: List of Claim Codes
examples:
- - 6JG8E-PTFV2-A9Z2N
- DVH4V-SNMSZ-PDXBR
items:
description: Claim code
type: string
type: array
uniqueItems: true
strings:
items:
type: string
type: array
uniqueItems: true
response_inventory:
additionalProperties: false
properties:
added:
$ref: '#/components/schemas/response_inventory_added'
duplicated:
$ref: '#/components/schemas/response_inventory_duplicated'
error:
$ref: '#/components/schemas/response_inventory_error'
inventory_added:
$ref: '#/components/schemas/response_inventory_inventory_added'
inventory_duplicated:
$ref: '#/components/schemas/response_inventory_inventory_duplicated'
reason:
$ref: '#/components/schemas/strings'
type: object
map_import_json:
additionalProperties: false
properties:
import_all_floorplans:
default: false
type: boolean
import_height:
default: true
type: boolean
import_orientation:
default: true
type: boolean
vendor_name:
$ref: '#/components/schemas/map_import_json_vendor_name'
required:
- vendor_name
type: object
response_inventory_inventory_added:
items:
$ref: '#/components/schemas/response_inventory_inventory_added_items'
minItems: 1
type: array
uniqueItems: true
virtual_chassis_member_update_vc_ports:
description: Required if `op`==`add` or `op`==`preprovision`
items:
type: string
type: array
map_site_import_file:
additionalProperties: false
properties:
auto_deviceprofile_assignment:
description: Whether to auto assign device to deviceprofile by name
examples:
- true
type: boolean
csv:
contentMediaType: application/octet-stream
description: CSV file for ap name mapping, optional
type: string
file:
contentMediaType: application/octet-stream
description: Ekahau or ibwave file
type: string
json:
$ref: '#/components/schemas/map_import_json'
type: object
response_map_import_summary:
additionalProperties: false
properties:
num_ap_assigned:
type: integer
num_inv_assigned:
type: integer
num_map_assigned:
type: integer
required:
- num_ap_assigned
- num_map_assigned
- num_inv_assigned
type: object
installer_device_ble_stat:
additionalProperties: false
description: BLE statistics for the device
properties:
major:
examples:
- 12345
type: integer
minors:
items:
type: integer
type: array
uuid:
examples:
- ada72f8f-1643-e5c6-94db-f2a5636f1a64
format: uuid
type: string
type: object
map_wall_path_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
response_inventory_inventory_duplicated_items:
additionalProperties: false
properties:
mac:
examples:
- 5c5b35000012
type: string
magic:
examples:
- DVH4VSNMSZPDXBR
type: string
model:
examples:
- AP41
type: string
serial:
examples:
- FXLH2015150027
type: string
type:
examples:
- ap
type: string
required:
- mac
- magic
- model
- serial
- type
type: object
map_geofence_vertices:
description: List of vertices defining the geofence
items:
$ref: '#/components/schemas/map_geofence_vertice'
type: array
virtual_chassis_member_update:
additionalProperties: false
properties:
mac:
description: Required if `op`==`add` or `op`==`preprovision`.
type: string
member:
description: Required if `op`==`remove`
type: integer
member_id:
description: Required if `op`==`preprovision`. Optional if `op`==`add`
type: integer
vc_ports:
$ref: '#/components/schemas/virtual_chassis_member_update_vc_ports'
vc_role:
$ref: '#/components/schemas/virtual_chassis_member_update_vc_role'
type: object
response_inventory_error:
items:
examples:
- PO1025335ohoh
type: string
type: array
map_geofences:
description: List of geofences for the map
items:
$ref: '#/components/schemas/map_geofence'
type: array
module_stat_item_errors:
description: Used to report all error states the device node is running into. An error should always have `type` and `since` fields, and could have some other fields specific to that type.
items:
$ref: '#/components/schemas/module_stat_item_errors_items'
type: array
map_wall_path:
additionalProperties: false
description: JSON blob for wall definition (same format as wayfinding_path)
properties:
coordinate:
examples:
- actual
type: string
nodes:
$ref: '#/components/schemas/map_wall_path_nodes'
type: object
map_sitesurvey_path_items:
additionalProperties: false
properties:
coordinate:
examples:
- actual
type: string
id:
$ref: '#/components/schemas/id'
name:
examples:
- Default
type: string
nodes:
$ref: '#/components/schemas/map_sitesurvey_path_items_nodes'
type: object
module_stat_item_pics_item_port_groups:
items:
$ref: '#/components/schemas/module_stat_item_pics_item_port_groups_item'
type: array
latlng_br:
additionalProperties: false
description: When type=google, latitude / longitude of the bottom-right corner
properties:
lat:
type: string
lng:
type: string
type: object
map_sitesurvey_path_items_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
installer_site:
properties:
address:
examples:
- 1601 S. Deanza Blvd., Cupertino, CA, 95014
type: string
country_code:
examples:
- US
type: string
id:
$ref: '#/components/schemas/id'
latlng:
$ref: '#/components/schemas/lat_lng'
name:
examples:
- Mist Office
type: string
rftemplate_name:
examples:
- rftemplate1
type: string
sitegroup_names:
$ref: '#/components/schemas/installer_site_sitegroup_names'
timezone:
examples:
- America/Los_Angeles
type: string
required:
- address
- country_code
- latlng
- name
type: object
module_stat_item_vc_links:
items:
$ref: '#/components/schemas/module_stat_item_vc_links_item'
type: array
uniqueItems: true
virtual_chassis_member_update_vc_role:
description: 'Required if `op`==`add` or `op`==`preprovision`. enum: `backup`, `linecard`, `master`'
enum:
- backup
- linecard
- master
type: string
module_stat_item_poe:
additionalProperties: false
properties:
max_power:
examples:
- 250
type: number
power_draw:
examples:
- 120.3
type: number
status:
type: string
type: object
virtual_chassis_config_members:
items:
$ref: '#/components/schemas/virtual_chassis_config_member'
type: array
latlng_tl:
additionalProperties: false
description: When type=google, latitude / longitude of the top-left corner
properties:
lat:
type: string
lng:
type: string
type: object
response_http401:
additionalProperties: false
properties:
detail:
examples:
- Authentication credentials were not provided.
type: string
type: object
map_import_json_vendor_name:
description: 'enum: `ekahau`, `ibwave`'
enum:
- ekahau
- ibwave
examples:
- ekahau
type: string
module_stat_item_pics_item_port_groups_item:
additionalProperties: false
properties:
count:
type: integer
type:
type: string
type: object
module_stat_item_pics_item:
additionalProperties: false
properties:
index:
type: integer
model_number:
type: string
port_groups:
$ref: '#/components/schemas/module_stat_item_pics_item_port_groups'
type: object
map_node_position:
additionalProperties: false
properties:
x:
examples:
- 746
format: double
type: number
y:
examples:
- 104
format: double
type: number
required:
- x
- y
type: object
module_stat_item_psus:
items:
$ref: '#/components/schemas/module_stat_item_psus_item'
type: array
uniqueItems: true
stats_switch_module_stat:
items:
$ref: '#/components/schemas/stats_switch_module_stat_item'
minItems: 1
type: array
uniqueItems: true
response_map_import_ap_action:
description: 'enum: `assigned-named-placed`, `assigned-placed`, `ignored`, `named-placed`, `placed`'
enum:
- assigned-named-placed
- assigned-placed
- ignored
- named-placed
- placed
type: string
response_detail_string:
additionalProperties: false
properties:
detail:
type: string
type: object
module_stat_item_vc_links_item:
additionalProperties: false
properties:
neighbor_module_idx:
examples:
- 1
type: integer
neighbor_port_id:
examples:
- vcp-255/1/0
type: string
port_id:
examples:
- vcp-255/1/0
type: string
type: object
map_wayfinding_micello:
additionalProperties: false
properties:
account_key:
examples:
- adasdf
type: string
default_level_id:
examples:
- 5
type: integer
map_id:
examples:
- c660f81dd250c
type: string
type: object
map_geofence_vertice:
additionalProperties: false
properties:
X:
description: X coordinate
examples:
- 700
type: number
Y:
description: Y coordinate
examples:
- 100
type: number
type: object
virtual_chassis_config_member_vc_role:
description: 'enum: `backup`, `linecard`, `master`'
enum:
- backup
- linecard
- master
type: string
cpu_stat_load_avg:
description: Load averages for the last 1, 5, and 15 minutes
items:
type: number
type: array
map_view:
description: 'if `type`==`google`. enum: `hybrid`, `roadmap`, `satellite`, `terrain`'
enum:
- hybrid
- roadmap
- satellite
- terrain
type:
- string
- 'null'
created_time:
description: When the object has been created, in epoch
format: double
readOnly: true
type: number
map_wayfinding:
additionalProperties: false
description: Properties related to wayfinding
properties:
micello:
$ref: '#/components/schemas/map_wayfinding_micello'
snap_to_path:
type: boolean
type: object
virtual_chassis_update:
description: Virtual Chassis
properties:
member:
description: Only if `op`==`renumber`
type: integer
members:
$ref: '#/components/schemas/virtual_chassis_update_members'
new-member:
description: Only if `op`==`renumber`
type: integer
op:
$ref: '#/components/schemas/virtual_chassis_update_op'
remove_inventory:
default: false
description: Only if `op`==`preprovision`. When removing members from a pre-provisioned VC, set to `true` to delete the inventory records for removed members (e.g. for RMA). Members being removed must be in "not-present" state.
type: boolean
type: object
installers:
items:
$ref: '#/components/schemas/installers_item'
type: array
map_sitesurvey_path:
description: Sitesurvey_path
items:
$ref: '#/components/schemas/map_sitesurvey_path_items'
minItems: 0
type: array
lat_lng:
additionalProperties: false
properties:
lat:
examples:
- 37.295833
format: double
type: number
lng:
examples:
- -122.032946
format: double
type: number
required:
- lat
- lng
type: object
response_inventory_duplicated:
items:
examples:
- DVH4V-SNMSZ-PDXBR
type: string
type: array
maps:
items:
$ref: '#/components/schemas/map'
type: array
installer_devices:
items:
$ref: '#/components/schemas/installer_device'
type: array
response_map_import:
additionalProperties: false
properties:
aps:
$ref: '#/components/schemas/response_map_import_aps'
floorplans:
$ref: '#/components/schemas/response_map_import_floorplans'
for_site:
readOnly: true
type: boolean
site_id:
$ref: '#/components/schemas/site_id'
summary:
$ref: '#/components/schemas/response_map_import_summary'
required:
- site_id
- aps
- floorplans
- summary
type: object
map_wayfinding_path_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
cpu_stat:
additionalProperties: false
properties:
idle:
description: Percentage of CPU time that is idle
readOnly: true
type:
- number
- 'null'
interrupt:
description: Percentage of CPU time being used by interrupts
readOnly: true
type:
- number
- 'null'
load_avg:
$ref: '#/components/schemas/cpu_stat_load_avg'
system:
description: Percentage of CPU time being used by system processes
readOnly: true
type:
- number
- 'null'
usage:
description: CPU usage
readOnly: true
type:
- number
- 'null'
user:
description: Percentage of CPU time being used by user processes
readOnly: true
type:
- number
- 'null'
type: object
response_map_import_ap:
additionalProperties: false
properties:
action:
$ref: '#/components/schemas/response_map_import_ap_action'
floorplan_id:
format: uuid
type: string
height:
format: double
type: number
mac:
type: string
map_id:
format: uuid
type: string
orientation:
type: integer
reason:
type: string
required:
- mac
- action
- map_id
- floorplan_id
- orientation
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
installer_sites:
items:
$ref: '#/components/schemas/installer_site'
type: array
module_stat_item_fans:
items:
$ref: '#/components/schemas/module_stat_item_fans_items'
type: array
uniqueItems: true
map_geofence:
additionalProperties: false
properties:
name:
description: Name of the geofence
examples:
- example
type: string
vertices:
$ref: '#/components/schemas/map_geofence_vertices'
type: object
memory_stat:
additionalProperties: false
description: Memory usage stat (for virtual chassis, memory usage of master RE)
properties:
usage:
type: number
required:
- usage
type: object
map_node:
additionalProperties: false
description: Nodes on maps
properties:
edges:
additionalProperties:
type: string
examples:
- N1: '1'
type: object
name:
examples:
- N1
type: string
position:
$ref: '#/components/schemas/map_node_position'
required:
- name
type: object
module_stat_item_temperatures:
items:
$ref: '#/components/schemas/module_stat_item_temperatures_item'
type: array
uniqueItems: true
module_stat_item_errors_items:
additionalProperties: false
properties:
feature:
examples:
- Mist-Management
type: string
minimum_version:
examples:
- 128T-6.0.0-1
type: string
reason:
type: string
since:
examples:
- 1657497600
type: integer
type:
examples:
- FW_UPGRADE_REQUIRED_BY_FEATURE
type: string
required:
- since
- type
type: object
virtual_chassis_update_op:
description: 'enum: `add`, `preprovision`, `remove`, `renumber`'
enum:
- add
- preprovision
- remove
- renumber
type: string
org_id:
examples:
- a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
format: uuid
readOnly: true
type: string
virtual_chassis_update_members:
items:
$ref: '#/components/schemas/virtual_chassis_member_update'
type: array
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
type: string
map_type:
default: image
description: 'enum: `google`, `image`'
enum:
- google
- image
examples:
- image
type: string
response_http403:
additionalProperties: false
properties:
detail:
examples:
- You do not have permission to perform this action.
type: string
type: object
virtual_chassis_config_member:
additionalProperties: false
properties:
locating:
readOnly: true
type: boolean
mac:
description: fpc0, same as the mac of device_id
type: string
member_id:
description: For preprovisionned virtual chassis
type: integer
vc_ports:
$ref: '#/components/schemas/strings'
vc_role:
$ref: '#/components/schemas/virtual_chassis_config_member_vc_role'
required:
- mac
- vc_role
type: object
response_inventory_inventory_added_items:
additionalProperties: false
properties:
mac:
examples:
- 5c5b35000018
type: string
magic:
examples:
- 6JG8EPTFV2A9Z2N
type: string
model:
examples:
- AP41
type: string
serial:
examples:
- FXLH2015150025
type: string
type:
examples:
- ap
type: string
required:
- mac
- magic
- model
- serial
- type
type: object
response_map_import_floorplans:
items:
$ref: '#/components/schemas/response_map_import_floorplan'
type: array
uniqueItems: true
map_wayfinding_path:
additionalProperties: false
description: JSON blob for wayfinding (using Dijkstra’s algorithm)
properties:
coordinate:
examples:
- actual
type: string
nodes:
$ref: '#/components/schemas/map_wayfinding_path_nodes'
type: object
virtual_chassis_config:
description: Virtual Chassis
properties:
locating:
readOnly: true
type: boolean
members:
$ref: '#/components/schemas/virtual_chassis_config_members'
preprovisioned:
default: false
description: To create the Virtual Chassis in Pre-Provisioned mode
type: boolean
type: object
site_id:
examples:
- 441a1214-6928-442a-8e92-e1d34b8ec6a6
format: uuid
readOnly: true
type: string
stats_switch_module_stat_item:
additionalProperties: false
properties:
backup_version:
readOnly: true
type:
- string
- 'null'
bios_version:
readOnly: true
type:
- string
- 'null'
boot_partition:
type: string
cpld_version:
readOnly: true
type:
- string
- 'null'
cpu_stat:
$ref: '#/components/schemas/cpu_stat'
errors:
$ref: '#/components/schemas/module_stat_item_errors'
fans:
$ref: '#/components/schemas/module_stat_item_fans'
fpc_idx:
readOnly: true
type: integer
fpga_version:
readOnly: true
type:
- string
- 'null'
last_seen:
$ref: '#/components/schemas/last_seen'
locating:
type: boolean
mac:
examples:
- fc3342123456
type: string
memory_stat:
$ref: '#/components/schemas/memory_stat'
model:
examples:
- EX4300-48P
readOnly: true
type:
- string
- 'null'
optics_cpld_version:
readOnly: true
type:
- string
- 'null'
pending_version:
readOnly: true
type:
- string
- 'null'
pics:
$ref: '#/components/schemas/module_stat_item_pics'
poe:
$ref: '#/components/schemas/module_stat_item_poe'
poe_version:
readOnly: true
type:
- string
- 'null'
power_cpld_version:
readOnly: true
type:
- string
- 'null'
psus:
$ref: '#/components/schemas/module_stat_item_psus'
re_fpga_version:
readOnly: true
type:
- string
- 'null'
recovery_version:
readOnly: true
type:
- string
- 'null'
serial:
examples:
- PX8716230021
readOnly: true
type:
- string
- 'null'
status:
readOnly: true
type:
- string
- 'null'
temperatures:
$ref: '#/components/schemas/module_stat_item_temperatures'
tmc_fpga_version:
readOnly: true
type:
- string
- 'null'
type:
readOnly: true
type:
- string
- 'null'
uboot_version:
readOnly: true
type:
- string
- 'null'
uptime:
readOnly: true
type:
- integer
- 'null'
vc_links:
$ref: '#/components/schemas/module_stat_item_vc_links'
vc_mode:
readOnly: true
type:
- string
- 'null'
vc_role:
description: 'enum: `master`, `backup`, `linecard`'
examples:
- master
readOnly: true
type:
- string
- 'null'
vc_state:
readOnly: true
type:
- string
- 'null'
version:
readOnly: true
type:
- string
- 'null'
type: object
last_seen:
description: Last seen timestamp
examples:
- 1470417522
format: double
readOnly: true
type:
- number
- 'null'
response_inventory_added:
items:
examples:
- 6JG8E-PTFV2-A9Z2N
type: string
type: array
response_http404:
additionalProperties: false
properties:
id:
type: string
type: object
response_map_import_aps:
items:
$ref: '#/components/schemas/response_map_import_ap'
type: array
uniqueItems: true
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
module_stat_item_psus_item:
additionalProperties: false
properties:
name:
examples:
- Power Supply 0
type: string
status:
examples:
- ok
type: string
type: object
module_stat_item_pics:
items:
$ref: '#/components/schemas/module_stat_item_pics_item'
type: array
module_stat_item_fans_items:
additionalProperties: false
properties:
airflow:
examples:
- out
type: string
name:
examples:
- Fan 0
type: string
rpm:
type: integer
status:
examples:
- ok
type: string
type: object
response_inventory_inventory_duplicated:
items:
$ref: '#/components/schemas/response_inventory_inventory_duplicated_items'
type: array
uniqueItems: true
installer_device:
additionalProperties: false
properties:
ble_stat:
$ref: '#/components/schemas/installer_device_ble_stat'
connected:
examples:
- true
type: boolean
deviceprofile_name:
examples:
- SJ1
type: string
ext_ip:
examples:
- 12.34.56.78
type: string
height:
examples:
- 2.7
format: double
type: number
ip:
examples:
- 192.168.1.111
type: string
last_seen:
$ref: '#/components/schemas/last_seen'
mac:
examples:
- 5c5b35000018
type: string
map_id:
examples:
- 845a23bf-bed9-e43c-4c86-6fa474be7ae5
format: uuid
type: string
model:
examples:
- AP41
type: string
name:
examples:
- hallway
type: string
orientation:
examples:
- 90
type: integer
serial:
examples:
- FXLH2015150025
type: string
site_name:
examples:
- SJ1
type: string
uptime:
examples:
- 12345
type: integer
vc_mac:
examples:
- null
type:
- string
- 'null'
version:
examples:
- 0.10.24362
type: string
x:
examples:
- 150
format: double
type: number
y:
examples:
- 300
format: double
type: number
type: object
installers_item:
additionalProperties: false
properties:
id:
$ref: '#/components/schemas/id'
name:
examples:
- 'Entry #1'
type: string
type: object
installer_provision_device:
description: Provision Device
properties:
deviceprofile_name:
examples:
- SJ1
type: string
for_site:
readOnly: true
type: boolean
height:
examples:
- 2.7
format: double
type: number
map_id:
examples:
- 845a23bf-bed9-e43c-4c86-6fa474be7ae5
format: uuid
type: string
name:
examples:
- SJ1-AP1
type: string
orientation:
examples:
- 90
type: integer
replacing_mac:
description: Onlif this is to replace an existing device
examples:
- 5c5b3500003
type: string
role:
description: Optional role for switch / gateway
type: string
site_id:
examples:
- 72771e6a-6f5e-4de4-a5b9-1266c4197811
format: uuid
type: string
site_name:
examples:
- SJ1
type: string
x:
examples:
- 150
format: double
type: number
y:
examples:
- 300
format: double
type: number
required:
- name
type: object
response_map_import_floorplan:
additionalProperties: false
properties:
action:
type: string
id:
$ref: '#/components/schemas/id'
map_id:
format: uuid
type: string
name:
type: string
reason:
type: string
required:
- id
- name
- action
- map_id
type: object
map:
description: Map
properties:
created_time:
$ref: '#/components/schemas/created_time'
flags:
additionalProperties:
type: integer
description: Name/val pair objects for location engine to use
examples:
- assetHoldTime: 5
storeTime: 10
readOnly: true
type: object
for_site:
readOnly: true
type: boolean
geofences:
$ref: '#/components/schemas/map_geofences'
group_idx:
description: maps grouping, typically used for floor, optional
examples:
- 1
type: integer
group_name:
description: maps grouping, optional
examples:
- East Wing
type: string
height:
description: When type=image, height of the image map
examples:
- 1500
type: integer
height_m:
format: double
type: number
id:
$ref: '#/components/schemas/id'
latlng_br:
$ref: '#/components/schemas/latlng_br'
latlng_tl:
$ref: '#/components/schemas/latlng_tl'
locked:
default: false
description: Whether this map is considered locked down
type: boolean
modified_time:
$ref: '#/components/schemas/modified_time'
name:
description: The name of the map
examples:
- Mist Office
type: string
occupancy_limit:
type: integer
org_id:
$ref: '#/components/schemas/org_id'
orientation:
default: 0
description: Orientation of the map, 0 means up is north, 90 means up is west
examples:
- 30
maximum: 359
minimum: 0
type: integer
origin_x:
description: User-annotated X origin, pixels
examples:
- 35
type: integer
origin_y:
description: User-annotated Y origin, pixels
examples:
- 60
type: integer
ppm:
description: When type=image, pixels per meter
examples:
- 40.94
type: number
site_id:
$ref: '#/components/schemas/site_id'
sitesurvey_path:
$ref: '#/components/schemas/map_sitesurvey_path'
thumbnail_url:
description: When type=image, the url for the thumbnail image / preview
examples:
- https://url/to/image.png
readOnly: true
type: string
type:
$ref: '#/components/schemas/map_type'
url:
description: When type=image, the url
examples:
- https://url/to/image.png
readOnly: true
type: string
view:
$ref: '#/components/schemas/map_view'
wall_path:
$ref: '#/components/schemas/map_wall_path'
wayfinding:
$ref: '#/components/schemas/map_wayfinding'
wayfinding_path:
$ref: '#/components/schemas/map_wayfinding_path'
width:
description: When type=image, width of the image map
examples:
- 1250
type: integer
width_m:
format: double
type: number
type: object
installer_site_sitegroup_names:
examples:
- - sg1
- sg2
items:
type: string
type: array
module_stat_item_temperatures_item:
additionalProperties: false
properties:
celsius:
examples:
- 45
type: number
name:
examples:
- CPU
type: string
status:
examples:
- ok
type: string
type: object
modified_time:
description: When the object has been modified for the last time, in epoch
format: double
readOnly: true
type: number
examples:
InstallerAlarmtemplatesExample:
value:
- id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
name: AlarmTemplate 1
OrgInventoryUnassignFailedReplacingMacDeviceLastModifiedOutsideOfGracePeriod:
value:
detail: replacing_mac device outside of grace period
OrgInventoryUnassignNotFoundReplacingMacDeviceNotFound:
value:
detail: replacing_mac device not found
OrgInventoryUnassignFailedOutsideOfGracePeriod:
value:
detail: outside of grace period
HTTP403Example:
value:
detail: You do not have permission to perform this action.
VirtualChassisExample:
value:
config_type: nonprovisioned
id: 00000000-0000-0000-1000-52d9107af289
mac: 52d9107af289
members:
- boot_partition: junos
cpld_version: '6'
cpu_stat:
idle: 69
interrupt: 1
load_avg:
- 0.8
- 1.09
- 1.07
system: 11
user: 19
fans:
- airflow: out
name: Fan Tray 0 Fan 0
rpm: 0
status: ok
- airflow: out
name: Fan Tray 1 Fan 0
rpm: 0
status: ok
fpc_idx: 0
mac: 52d9107af289
memory_stat:
usage: 42
model: EX2300-48P
pics:
- index: 0
model_number: EX2300-48P
port_groups:
- count: 48
type: GE
- index: 1
model_number: EX2300-48P
port_groups:
- count: 4
type: SFP/SFP+
poe:
max_power: 750
power_draw: 40.4
status: AT_MODE
poe_version: 2.1.1.19.3 (type1)
psus:
- name: Power Supply 0
status: ok
recovery_version: 21.4R3-S4.18
serial: JW0000000000
temperatures:
- celsius: 33
name: CPU Sensor
status: ok
- celsius: 29
name: PSU Sensor
status: ok
type: fpc
uboot_version: U-Boot 2016.01-rc1 (Nov 11 2016 - 14:26:00 -0800) 1.3.2
uptime: 27636720
vc_links:
- neighbor_module_idx: 1
neighbor_port_id: vcp-1/1/0
port_id: vcp-0/1/0
vc_mode: HiGiG
vc_role: master
vc_state: present
version: 21.4R3-S4.18
- boot_partition: junos
cpld_version: '6'
cpu_stat:
idle: 76
interrupt: 0
load_avg:
- 0.96
- 0.87
- 0.76
system: 6
user: 17
fans:
- airflow: out
name: Fan Tray 0 Fan 0
rpm: 0
status: ok
- airflow: out
name: Fan Tray 1 Fan 0
rpm: 0
status: ok
fpc_idx: 1
mac: d0dd4991652d
memory_stat:
usage: 18
model: EX2300-48P
pics:
- index: 0
model_number: EX2300-48P
port_groups:
- count: 48
type: GE
- index: 1
model_number: EX2300-48P
port_groups:
- count: 4
type: SFP/SFP+
poe:
max_power: 750
power_draw: 21.2
status: AT_MODE
poe_version: 2.1.1.19.3 (type1)
psus:
- name: Power Supply 0
status: ok
recovery_version: 21.4R3-S4.18
serial: JW3619300922
temperatures:
- celsius: 32
name: CPU Sensor
status: ok
- celsius: 29
name: PSU Sensor
status: ok
type: fpc
uboot_version: U-Boot 2016.01-rc1 (Nov 11 2016 - 14:26:00 -0800) 1.3.2
uptime: 27636720
vc_links:
- neighbor_module_idx: 0
neighbor_port_id: vcp-0/1/0
port_id: vcp-1/1/0
vc_mode: HiGiG
vc_role: backup
vc_state: present
version: 21.4R3-S4.18
model: EX2300-48P
num_routing_engines: 1
org_id: 1e9a61a9-bc42-42ca-bf67-1ad87443d9b8
serial: JW3619300157
site_id: ab0aca7a-d45c-469b-b3bb-4fe240642d0b
status: connected
type: switch
vc_mac: 52d9107af289
InstallerSitesArrayExample:
value:
- address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
country_code: US
id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
latlng:
lat: 37.295833
lng: -122.032946
name: Mist Office
rftemplate_name: rftemplate1
sitegroup_names:
- sg1
- sg2
timezone: America/Los_Angeles
InstallerDevicesArrayExample:
value:
- connected: true
deviceprofile_name: SJ1
height: 2.7
mac: 5c5b35000018
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
model: AP41
name: hallway
orientation: 90
serial: FXLH2015150025
site_name: SJ1
x: 150
y: 300
InstallerDeviceProfilesExample:
value:
- id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
name: DeviceProfile 1
MapImportAssignedNamedAndPlaced:
value:
aps:
- action: assigned-named-placed
floorplan_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: cbdb7f0b-3be0-4872-88f9-58790b509c23
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
OrgInventoryAddExample:
value:
added:
- 6JG8E-PTFV2-A9Z2N
duplicated:
- DVH4V-SNMSZ-PDXBR
error:
- PO1025335ohoh
inventory_added:
- mac: 5c5b35000018
magic: 6JG8EPTFV2A9Z2N
model: AP41
serial: FXLH2015150025
type: ap
inventory_duplicated:
- mac: 5c5b35000012
magic: DVH4VSNMSZPDXBR
model: AP41
serial: FXLH2015150027
type: ap
reason:
- belongs to another org ('e2f543f7-d6e1-409f-a565-e77a1f098d3b' (other) != '0de5d6fc-219a-414d-a840-67d6b919ad8f' (you))
HTTP429Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
OrgInventoryUnassignFailedInvalidMacGivenForReplacingMac:
value:
detail: invalid replacing_mac
MapImportPlaced:
value:
aps:
- action: placed
floorplan_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
height: 3
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
OrgInventoryUnassignNotFoundReplacingMacDeviceIsNotInOrgInventory:
value:
detail: replacing_mac inventory not found
InstallerRftemplatesArrayExample:
value:
- id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
name: RFTemplate 1
OrgInventoryUnassignFailedInventoryDeviceIsAlreadyAssigned:
value:
detail: device already assigned
HTTP400Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
MapsArrayExample:
value:
- created_time: 0
flags: {}
group_idx: 1
group_name: East Wing
height: 0
height_m: 0
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
modified_time: 0
name: string
occupancy_limit: 0
org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
orientation: 0
origin_x: 0
origin_y: 0
ppm: 0
site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
sitesurvey_path:
- coordinate: string
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
name: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
thumbnail_url: string
type: image
url: string
view: roadmap
wall_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
wayfinding:
micello:
account_key: string
default_level_id: 0
map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
snap_to_path: true
wayfinding_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
width: 0
width_m: 0
InstallerSitegroupsArrayExample:
value:
- id: 581328b6-e382-f54e-c9dc-999983183a34
name: SiteGroup 1
OrgInventoryUnassignFailedReplacingMacDeviceIsNotAssignedToASite:
value:
detail: replacing_mac device is unassigned
HTTP401Example:
value:
detail: Authentication credentials were not provided.
MapImportAssignedAndPlaced:
value:
aps:
- action: assigned-placed
floorplan_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
height: 3
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: cbdb7f0b-3be0-4872-88f9-58790b509c23
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
parameters:
org_id:
in: path
name: org_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
map_id:
in: path
name: map_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
page:
in: query
name: page
schema:
default: 1
minimum: 1
type: integer
site_name:
in: path
name: site_name
required: true
schema:
type: string
image_name:
in: path
name: image_name
required: true
schema:
type: string
limit:
in: query
name: limit
schema:
default: 100
minimum: 0
type: integer
device_mac:
in: path
name: device_mac
required: true
schema:
examples:
- 0000000000ab
pattern: ^[0-9a-fA-F]{12}$
type: string
responses:
OrgInventoryAdd:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/OrgInventoryAddExample'
schema:
$ref: '#/components/schemas/response_inventory'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/OrgInventoryAddExample'
schema:
$ref: '#/components/schemas/response_inventory'
description: OK - if any of entries are valid or there’s no errors
MapsArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/MapsArrayExample'
schema:
$ref: '#/components/schemas/maps'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/MapsArrayExample'
schema:
$ref: '#/components/schemas/maps'
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
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
OrgInventoryUnassignNotFound:
content:
application/json:
examples:
Replacing Mac Device Is Not In Org Inventory:
$ref: '#/components/examples/OrgInventoryUnassignNotFoundReplacingMacDeviceIsNotInOrgInventory'
Replacing Mac Device Not Found:
$ref: '#/components/examples/OrgInventoryUnassignNotFoundReplacingMacDeviceNotFound'
schema:
$ref: '#/components/schemas/response_detail_string'
application/vnd.api+json:
examples:
Replacing Mac Device Is Not In Org Inventory:
$ref: '#/components/examples/OrgInventoryUnassignNotFoundReplacingMacDeviceIsNotInOrgInventory'
Replacing Mac Device Not Found:
$ref: '#/components/examples/OrgInventoryUnassignNotFoundReplacingMacDeviceNotFound'
schema:
$ref: '#/components/schemas/response_detail_string'
description: Not Found
InstallerSitegroupsArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerSitegroupsArrayExample'
schema:
$ref: '#/components/schemas/installers'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerSitegroupsArrayExample'
schema:
$ref: '#/components/schemas/installers'
description: Installer List of Site Groups
InstallerDeviceProfiles:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerDeviceProfilesExample'
schema:
$ref: '#/components/schemas/installers'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerDeviceProfilesExample'
schema:
$ref: '#/components/schemas/installers'
description: Installer List of Device Profiles
MapImport:
content:
application/json:
examples:
Assigned And Placed:
$ref: '#/components/examples/MapImportAssignedAndPlaced'
Assigned Named And Placed:
$ref: '#/components/examples/MapImportAssignedNamedAndPlaced'
Placed:
$ref: '#/components/examples/MapImportPlaced'
schema:
$ref: '#/components/schemas/response_map_import'
application/vnd.api+json:
examples:
Assigned And Placed:
$ref: '#/components/examples/MapImportAssignedAndPlaced'
Assigned Named And Placed:
$ref: '#/components/examples/MapImportAssignedNamedAndPlaced'
Placed:
$ref: '#/components/examples/MapImportPlaced'
schema:
$ref: '#/components/schemas/response_map_import'
description: OK
InstallerAlarmtemplates:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerAlarmtemplatesExample'
schema:
$ref: '#/components/schemas/installers'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerAlarmtemplatesExample'
schema:
$ref: '#/components/schemas/installers'
description: Installer List of Alarm Templates
OrgInventoryUnassignFailed:
content:
application/json:
examples:
Invalid Mac Given For Replacing Mac:
$ref: '#/components/examples/OrgInventoryUnassignFailedInvalidMacGivenForReplacingMac'
Inventory Device Is Already Assigned:
$ref: '#/components/examples/OrgInventoryUnassignFailedInventoryDeviceIsAlreadyAssigned'
Outside Of Grace Period:
$ref: '#/components/examples/OrgInventoryUnassignFailedOutsideOfGracePeriod'
Replacing Mac Device Is Not Assigned To A Site:
$ref: '#/components/examples/OrgInventoryUnassignFailedReplacingMacDeviceIsNotAssignedToASite'
Replacing Mac Device Last Modified Outside Of Grace Period:
$ref: '#/components/examples/OrgInventoryUnassignFailedReplacingMacDeviceLastModifiedOutsideOfGracePeriod'
schema:
$ref: '#/components/schemas/response_detail_string'
application/vnd.api+json:
examples:
Invalid Mac Given For Replacing Mac:
$ref: '#/components/examples/OrgInventoryUnassignFailedInvalidMacGivenForReplacingMac'
Inventory Device Is Already Assigned:
$ref: '#/components/examples/OrgInventoryUnassignFailedInventoryDeviceIsAlreadyAssigned'
Outside Of Grace Period:
$ref: '#/components/examples/OrgInventoryUnassignFailedOutsideOfGracePeriod'
Replacing Mac Device Is Not Assigned To A Site:
$ref: '#/components/examples/OrgInventoryUnassignFailedReplacingMacDeviceIsNotAssignedToASite'
Replacing Mac Device Last Modified Outside Of Grace Period:
$ref: '#/components/examples/OrgInventoryUnassignFailedReplacingMacDeviceLastModifiedOutsideOfGracePeriod'
schema:
$ref: '#/components/schemas/response_detail_string'
description: Bad Request
VirtualChassis:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/VirtualChassisExample'
schema:
$ref: '#/components/schemas/response_virtual_chassis_config'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/VirtualChassisExample'
schema:
$ref: '#/components/schemas/response_virtual_chassis_config'
description: Example response
InstallerDevicesArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerDevicesArrayExample'
schema:
$ref: '#/components/schemas/installer_devices'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerDevicesArrayExample'
schema:
$ref: '#/components/schemas/installer_devices'
description: List of Devices Recently Claimed
InstallerSitesArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerSitesArrayExample'
schema:
$ref: '#/components/schemas/installer_sites'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerSitesArrayExample'
schema:
$ref: '#/components/schemas/installer_sites'
description: List of Sites
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
Map:
content:
application/json:
schema:
$ref: '#/components/schemas/map'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/map'
description: OK
InstallerRftemplatesArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/InstallerRftemplatesArrayExample'
schema:
$ref: '#/components/schemas/installers'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/InstallerRftemplatesArrayExample'
schema:
$ref: '#/components/schemas/installers'
description: Installer List of RF Templates
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
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