openapi: 3.0.1
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 Europe 01
    url: https://api.eu.mist.com
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: |-
    > Version: **0.37.7**
    >
    > Date: **April 21, 2023**

    ---

    #### Available Documentation
    * [Postman](https://documenter.getpostman.com/view/224925/SzYgQufe)
    * [Open API](https://doc.mist-lab.fr/)

    ---

    #### Useful links
    * [Mist Homepage](https://www.mist.com)
    * [Mist Documentation](https://www.mist.com/documentation)
    * [Official API Documentation](https://api.mist.com/api/v1/docs/Home) (Mist account required)
    * [Mist Blog](https://www.mist.com/news/?md_post_type=post)
    * [Mist Updates](https://www.mist.com/documentation/category/product-updates/)
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist API
  version: 0.37.7
  x-apisguru-categories:
    - enterprise
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: "#FFFFFF"
    url: https://cdn.mist.com/wp-content/uploads/logo.png
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/tmunzer/mist_openapi/main/mist.openapi.yml
      version: "3.0"
  x-providerName: mist.com
security:
  - apiToken: []
  - basicAuth: []
tags:
  - name: Login
  - description: A Mist account can be linked to OAuth2 providers:\n1. First, login with your Mist account\n2. Obtain the Authorization URL for Linking 1. in JSON response, more usable for developers. Simply don\'t specify the forward parameter when obtaining the authorization URL 2. or as GET parameter, for UI where the user flow can be continued. Specify the landing page/url of your choice 3. Obtain the authorizaiton code by clicking / going through Authorization URL Link Mist Account against OAuth2 Provider by using the authorization code
    name: Login With OAuth2
  - 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.

      Notes:
      * an API token generated for a specific admin has the same privilege as the user
      * an API token will be automatically removed if not used for > 90 days
      * SSO admins cannot generate these API tokens. Refer Org level API tokens (/api/v1/docs/Org#api-token) which can have privileges of a specific Org/Site for more information.
    name: API Token
  - 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.
      At a high level, Installer APs try to achieve the following:
      1. identifying a device by MAC (that’s what they see)
      2. they can only touch configurations of the devices they’re installing
      3. allow the following configurations: * name * site assignment * device  profile assignment * map and location (x/y) assignment * claim (if not already in the inventory) * replace existing device with the device being installed

      * Grace Period *
      Grace 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
  - name: Admin
  - name: Mobile
  - description: MSP (Managed Service Provider) contains multiple Organizations.
    name: Msps
  - name: Msps Admins
  - name: Msps Inventory
  - name: Msps Invites
  - name: Msps Logo
  - name: Msps Logs
  - name: Msps Licenses
  - name: Msps Org Groups
  - name: Msps Orgs
  - name: Msps Search
  - name: Msps SLEs
  - name: Msps SSO Roles
  - name: Msps SSO
  - name: Msps Stats
  - name: Msps Tickets
  - description: An organization usually represents a customer - which has inventories, licenses. An Organization can contain multiple sites. A site usually represents a deployment at the same location (a campus, an office).
    name: Orgs
  - name: Orgs 128T
  - name: Orgs Admins
  - description: Alarms are triggered based on certain events. Alarms could be configured using an Alarm Template.
    name: Orgs Alarms
  - description: An Alarm Template is a set of Alarm Rules that could be applied to one or more sites (while each site can only pick one Alarm Template), or to the whole org.
    name: Orgs Alarm Templates
  - name: Orgs AP Templates
  - name: Orgs API Tokens
  - name: Orgs Assets
  - name: Orgs Asset Filters
  - name: Orgs Calls
  - name: Orgs Cert
  - name: Orgs Clients
  - name: Orgs CRL
  - description: |-
      While Templates / RF Templates / Network Templates / Gateway Templates provides powerful ways to control how a Device\'s configuration is derived for a Site. There are cases where you\'d like another level of control at the Org Level.
      A Device Profile contains a subset of Device\'s configurations you\'d like a device to have. It will be merged at runtime when we\'re provisioning an AP.
    name: Orgs Device Profiles
  - name: Orgs Devices
  - description: |-
      EVPN allows an alternative but more efficient LAN architecture utilizing VxLAN / MP-BGP - separating control plane (MAC / IP Learning) from forwarding plane.
      In our implementation, following the steps to deploy EVPN topologies in a Site
    name: Orgs EVPN Topologies
  - description: API Call for 3rd party devices
    name: Orgs Devices Others
  - name: Orgs Devices Stats
  - name: Orgs Devices Upgrades
  - description: |
      In Zscaler UI 
       1. add Partner Integration at https://admin.zscalerbeta.net/#administration/partner-integration 
       2. Add Partner Administrator Role at https://admin.zscalerbeta.net/#administration/role-management - Name: Mist - Access: Full 
       3. add Partner Admin at https://admin.zscalerbeta.net/#administration/admin-management with - Login ID: john - email: john@abc.com 
       4. Find the cloud name for ZIA https://help.zscaler.com/zia/what-my-cloud-name-zia
    name: Orgs Devices Zscaler
  - description: Gateway Template is applied to a site for gateway(s) in a site.
    name: Orgs Gateway Templates
  - name: Orgs Guests
  - name: Orgs Inventory
  - name: Orgs Invites
  - description: |-
      Juniper Support Insight is a free service provided to all Mist customers. You can adopt your devices via a few lines CLI comands. Allowing you to 
      * get some basic information about the adopted devices 
      * web shell into device (write privilege required) 
      * upgrade (write privilege required)
    name: Orgs JSI
  - name: Orgs Licenses
  - name: Orgs Logs
  - name: Orgs Marvis
  - name: Orgs Maps
  - name: Orgs MxClusters
  - name: Orgs MxEdges
  - name: Orgs MxTunnels
  - name: Orgs NAC Tags
  - name: Orgs NAC Rules
  - description: |-
      Network template is intended to be applied to a Site. It works like a blueprint of the network of the site.
      All Site Settings can go into Network Templates. See Site:Site Setting for schema
      Moreover, this can be further be overwriten by individual Site Setting
    name: Orgs Network Templates
  - name: Orgs Networks
  - name: Orgs OAuth
  - name: Orgs Premium Analytics
  - name: Orgs Psks
  - description: |-
      PSK Self-Service Portals are for 
        1. **WIFI users** who want to connect to a WLAN with personal PSK, they’re told to connect to a URL where they can login (likely through company’s SSO) and get the WIFI Name / Passphrase - required input fields name, email so we can generate PSK 
        2. **PSK Admins** (they don’t have access to normal Network Admin Portal)
      When a PSK portal is created, an unique URL will be generated (e.g. https://psk.mist.com/xxxxxx)
    name: Orgs Psk Portals
  - name: Orgs RF Templates
  - name: Orgs SDK Clients
  - name: Orgs SDK Invites
  - name: Orgs SDK Templates
  - description: Security Policy is designed to audit / catch discripancies between “what’s intended to be running” versus “what’s actually running” in a network. Many big organizations have separated Security and IT team (for good reasons). Each site can be assigned a security policy. Whenever an AP is provisioned, the configuration will be checked against the security policy. Any violations will be flagged in [Device Config History](#tag/Sites-Devices/operation/searchSiteDeviceConfigHistory) where you can search for the when and where the violation occurs.
    name: Orgs SecPolicies
  - name: Orgs Services
  - name: Orgs Service Policies
  - name: Orgs Setting
  - name: Orgs Sitegroups
  - name: Orgs Sites
  - description: Site template is intended to be applied to a Site. The items in site setting which should be shared for all device types.
    name: Orgs Site Templates
  - name: Orgs SLEs
  - name: Orgs SSO Roles
  - name: Orgs SSO
  - name: Orgs Stats
  - name: Orgs Stats Tunnels
  - name: Orgs Subscriptions
  - name: Orgs Templates
  - name: Orgs Tickets
  - name: Orgs Troubleshoot
  - name: Orgs VPNs
  - name: Orgs Webhooks
  - name: Orgs Wlans
  - name: Orgs WxRules
  - name: Orgs WxTags
  - name: Orgs WxTunnels
  - description: A site represents a project, a deployment. For MSP, it can be as small as a coffee shop or a five-star 600-room hotel. A site contains a set of Maps, Wlans, Policies, Zones.
    name: Sites
  - name: Sites Alarms
  - description: Applications contains a list of applications users are interested in monitoring / routing / policying
    name: Sites Applications
  - name: Sites Anomaly
  - name: Sites Asset Filters
  - name: Sites Assets
  - name: Sites Beacons
  - name: Sites Calls
  - name: Sites Clients
  - description: |-
      Mist provides many ways (device-type specific template, site template, device profile, per-device) to configure devices for different kind of scenarios.
      The precedence goes from most specific to least specific
      Device > Device Profile > RFTemplate (for AP only) > DeviceType-specific Template > Site Template > Site Setting
    name: Sites Devices
  - name: Sites Devices APs
  - description: API Call for 3rd party devices
    name: Sites Devices Others
  - name: Sites Devices Switches
  - name: Sites Devices Switches Virtual Chassis
  - name: Sites Devices WAN Edges
  - name: Sites Devices WAN Edges HA
  - name: Sites Devices Stats
  - name: Sites Devices Upgrades
  - name: Sites Devices Utilities
  - name: Sites Events
  - description: |-
      EVPN allows an alternative but more efficient LAN architecture utilizing VxLAN / MP-BGP - separating control plane (MAC / IP Learning) from forwarding plane.
      In our implementation, following the steps to deploy EVPN topologies in a Site 
    name: Sites EVPN Topologies
  - name: Sites Guests
  - name: Sites Insights
  - name: Sites Licenses
  - name: Sites Location
  - name: Sites Maps
  - name: Sites Maps Auto-orientation
  - name: Sites Maps Auto-placement
  - name: Sites MxEdges
  - name: Sites MxTunnels
  - name: Sites Pcaps
  - name: Sites Psks
  - name: Sites Rfdiags
  - name: Sites Rogues
  - name: Sites RRM
  - name: Sites Rssizones
  - name: Sites Setting
  - name: Sites Skyatp
  - name: Sites SLEs
  - name: Sites Stats
  - name: Sites Subscriptions
  - name: Sites Synthetic Tests
  - name: Sites UI Settings
  - name: Sites vBeacons
  - name: Sites Webhooks
  - name: Sites Wired Clients
  - name: Sites Wlans
  - name: Sites WxRules
  - name: Sites WxTags
  - name: Sites WxTunnels
  - name: Sites Zones
  - name: Constants
  - name: Self
  - name: Account
  - name: Webhook Samples
paths:
  /api/v1/const/alarm_defs:
    get:
      description: Get List of brief definitions of all the supported alarm types.  The example field contains an example payload as you would recieve in the alarm webhook output.
      operationId: listAlarmDefinitions
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - display: Device offline
                      example:
                        aps:
                          - d420b02000fa
                        count: 1
                        group: infrastructure
                        hostnames:
                          - Vendor_AP2
                        id: f70c308f-7007-4866-9ecd-0d01842979ea
                        last_seen: 1629753888
                        org_id: 09dac91f-6e73-4100-89f7-698e0fafbb1b
                        severity: warn
                        site_id: dcfb31a1-d615-4361-8c95-b9dde05aa704
                        timestamp: 1629753888
                        type: device_down
                      fields:
                        - aps
                        - hostnames
                      group: infrastructure
                      key: device_down
                      severity: warn
              schema:
                items:
                  properties:
                    display:
                      description: Description of the alarm type
                      type: string
                    fields:
                      description: List of fields available in an alarm details payload (in REST APIs & Webhooks); e.g. `aps`, `switches`, `gateways`, `hostnames`, `ssids`, `bssids`
                      items:
                        type: string
                      type: array
                    group:
                      description: Group to which the alarm belongs
                      type: string
                    key:
                      description: Key name of an alarm type
                      type: string
                    marvis_suggestion_category:
                      description: Marvis defined category to which the alarm belongs
                      type: string
                    severity:
                      description: Severity of the alarm
                      type: string
                  required:
                    - key
                    - display
                    - group
                    - severity
                    - fields
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listAlarmDefinitions
      tags:
        - Constants
  /api/v1/const/ap_channels:
    get:
      description: Get List of List of Available channels per country code
      operationId: listApChannels
      parameters:
        - $ref: "#/components/parameters/country_code"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    band24_channels:
                      "20":
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                      "40":
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                    band24_enabled: true
                    band5_channels:
                      "20":
                        - 36
                        - 40
                        - 44
                        - 48
                        - 52
                        - 56
                        - 60
                        - 64
                        - 100
                        - 104
                        - 108
                        - 112
                        - 116
                        - 132
                        - 136
                        - 140
                        - 149
                        - 153
                        - 157
                        - 161
                        - 165
                      "40":
                        - 36
                        - 40
                        - 44
                        - 48
                        - 52
                        - 56
                        - 60
                        - 64
                        - 100
                        - 104
                        - 108
                        - 112
                        - 132
                        - 136
                        - 149
                        - 153
                        - 157
                        - 161
                      "80":
                        - 36
                        - 40
                        - 44
                        - 48
                        - 52
                        - 56
                        - 60
                        - 64
                        - 100
                        - 104
                        - 108
                        - 112
                        - 132
                        - 136
                        - 149
                        - 153
                        - 157
                        - 161
                      dfs:
                        - 52
                        - 56
                        - 60
                        - 64
                        - 100
                        - 104
                        - 108
                        - 112
                        - 116
                        - 132
                        - 136
                        - 140
                    band5_enabled: true
                    code: 840
                    dfs_ok: true
                    key: US
                    name: United States
              schema:
                properties:
                  band24_channels:
                    additionalProperties:
                      items:
                        type: integer
                      type: array
                    description: The property key is the channel width
                    required:
                      - "20"
                      - "40"
                    type: object
                  band24_enabled:
                    type: boolean
                  band5_channels:
                    additionalProperties:
                      items:
                        type: integer
                      type: array
                    description: The property key is the channel width
                    type: object
                  band5_enabled:
                    type: boolean
                  code:
                    type: integer
                  dfs_ok:
                    type: boolean
                  key:
                    type: string
                  name:
                    type: string
                required:
                  - key
                  - name
                  - code
                  - band24_enabled
                  - band24_channels
                  - band5_enabled
                  - dfs_ok
                  - band5_channels
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listApChannels
      tags:
        - Constants
  /api/v1/const/ap_led_status:
    get:
      description: Get List of AP LED definition
      operationId: listApLedDefinition
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - code: "02"
                      description: Has no link (Seen using power injectors, but not connected to a switch)
                      key: NO_ETHERNET_LINK
                      name: No ethernet link
              schema:
                items:
                  properties:
                    code:
                      type: string
                    description:
                      type: string
                    key:
                      type: string
                    name:
                      type: string
                  required:
                    - code
                    - key
                    - name
                    - description
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listApLedDefinition
      tags:
        - Constants
  /api/v1/const/applications:
    get:
      description: Get List of a list of applications that Juniper-Mist APs recognize
      operationId: listApplications
      responses:
        "200":
          $ref: "#/components/responses/ConstApplications"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listApplications
      tags:
        - Constants
  /api/v1/const/call_events:
    get:
      description: Get List of Call Event Definitions
      operationId: listCallEventsDefinitions
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    - description: Client joined the call
                      display: Client joined the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENTS_JOINED_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_JOINED_CALL
                    - description: Client got abruptly disconnected from the call
                      display: Client disconnected abruptly from the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        reason: Network connection error.
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENT_DISCONNECTED_FROM_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_DISCONNECTED_FROM_CALL
                    - description: Client left the call
                      display: Client left the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENT_LEFT_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_LEFT_CALL
                    - description: Zoom/Teams CPU usage is high
                      display: High CPU Observed
                      example:
                        app: zoom
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        timestamp: 1674777600
                        type: HIGH_CPU_OBSERVED
                      key: HIGH_CPU_OBSERVED
              schema:
                items:
                  properties:
                    description:
                      type: string
                    display:
                      type: string
                    example:
                      properties:
                        app:
                          type: string
                        meeting_id:
                          type: string
                        org_id:
                          type: string
                        site_id:
                          type: string
                        timestamp:
                          type: integer
                        type:
                          type: string
                        wcid:
                          type: string
                      type: object
                    key:
                      type: string
                  type: object
                type: array
                x-examples:
                  Example 1:
                    - description: Client joined the call
                      display: Client joined the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENTS_JOINED_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_JOINED_CALL
                    - description: Client got abruptly disconnected from the call
                      display: Client disconnected abruptly from the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        reason: Network connection error.
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENT_DISCONNECTED_FROM_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_DISCONNECTED_FROM_CALL
                    - description: Client left the call
                      display: Client left the call
                      example:
                        app: zoom
                        meeting_id: "87609329850"
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                        timestamp: 1674777600
                        type: CLIENT_LEFT_CALL
                        wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                      key: CLIENT_LEFT_CALL
                    - description: Zoom/Teams CPU usage is high
                      display: High CPU Observed
                      example:
                        app: zoom
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        timestamp: 1674777600
                        type: HIGH_CPU_OBSERVED
                      key: HIGH_CPU_OBSERVED
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listCallEventsDefinitions
      tags:
        - Constants
  /api/v1/const/client_events:
    get:
      description: Get List of List of available Client Events
      operationId: listClientEventsDefinitions
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - display: DHCP Success
                      key: CLIENT_IP_ASSIGNED
              schema:
                items:
                  properties:
                    display:
                      type: string
                    key:
                      type: string
                  required:
                    - key
                    - display
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listClientEventsDefinitions
      tags:
        - Constants
  /api/v1/const/countries:
    get:
      description: Get List of List of available Country Codes
      operationId: listCountryCodes
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - alpha2: US
                      certified: true
                      name: United States
                      numeric: 840
                    - alpha2: JP
                      certified: true
                      name: Japan
                      numeric: 392
              schema:
                items:
                  properties:
                    alpha2:
                      type: string
                    certified:
                      type: boolean
                    name:
                      type: string
                    numeric:
                      type: number
                  required:
                    - alpha2
                    - numeric
                    - name
                    - certified
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listCountryCodes
      tags:
        - Constants
  /api/v1/const/default_gateway_config:
    get:
      description: Generate Default Gateway Config
      operationId: getGatawayDefaultConfig
      parameters:
        - description: model the default gateway config is intended (as the default LAN/WAN port can differ)
          in: query
          name: model
          schema:
            type: string
        - description: whether the config is intended for HA
          in: query
          name: ha
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    dhcpd_config:
                      lan:
                        ip_end: 192.168.1.254
                        ip_start: 192.168.1.2
                    ip_configs:
                      lan:
                        ip: 192.168.1.1
                        type: static
                    networks:
                      lan:
                        name: lan
                        subnet: 192.168.1.0/24
                        vlan_id: 1
                    path_preferences:
                      wan:
                        paths:
                          - name: wan
                            type: wan
                    port_config:
                      cl-1/0/0:
                        ip_config:
                          type: dhcp
                        name: lte
                        usage: wan
                        wan_type: lte
                      "ge-0/0/0,ge-0/0/7":
                        ip_config:
                          type: dhcp
                        name: wan
                        usage: wan
                      ge-0/0/1-6:
                        port_network: lan
                        usage: lan
                    service_policies:
                      - action: allow
                        name: Internet
                        path_preference: wan
                        services:
                          - any
                        tenants:
                          - lan
              schema:
                additionalProperties: true
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getGatawayDefaultConfig
      tags:
        - Constants
  /api/v1/const/device_events:
    get:
      description: Get list of available Device Events
      operationId: listDeviceEventsDefinitions
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - description: AP was assigned to a site
                      display: AP Assigned
                      example:
                        ap: 5c5b35000001
                        audit_id: e9a88814-fa81-5bdc-34b0-84e8735420e5
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                        timestamp: 1552408871
                        type: AP_ASSIGNED
                      key: AP_ASSIGNED
              schema:
                items:
                  properties:
                    description:
                      minLength: 1
                      type: string
                    display:
                      minLength: 1
                      type: string
                    example:
                      type: object
                    key:
                      minLength: 1
                      type: string
                  required:
                    - key
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - description: AP was assigned to a site
                      display: AP Assigned
                      example:
                        ap: 5c5b35000001
                        audit_id: e9a88814-fa81-5bdc-34b0-84e8735420e5
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                        timestamp: 1552408871
                        type: AP_ASSIGNED
                      key: AP_ASSIGNED
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listDeviceEventsDefinitions
      tags:
        - Constants
  /api/v1/const/device_models:
    get:
      description: Get list of AP device models for the Mist Site
      operationId: listDeviceModels
      responses:
        "200":
          $ref: "#/components/responses/ConstDeviceModels"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listDeviceModels
      tags:
        - Constants
  /api/v1/const/insight_metrics:
    get:
      description: Get List of Available Insight Metrics
      operationId: listSiteAvailableInsightMetrics
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bytes:
                      description: aggregated bytes over time
                      example:
                        - 185
                        - 197
                        - 250
                      intervals:
                        10m:
                          interval: 600
                          max_age: 86400
                        1h:
                          interval: 3600
                          max_age: 1209600
                      report_durations:
                        1d:
                          duration: 86400
                          interval: 3600
                        1w:
                          duration: 604800
                          interval: 3600
                      report_scopes:
                        - site
                        - org
                      scopes:
                        - site
                        - ap
                        - client
                      type: timeseries
                      unit: byte
                    num_clients:
                      description: number of client over time
                      example:
                        - 18
                        - null
                        - 15
                      intervals:
                        10m:
                          interval: 600
                          max_age: 86400
                        1h:
                          interval: 3600
                          max_age: 1209600
                      report_durations:
                        1d:
                          duration: 86400
                          interval: 3600
                        1w:
                          duration: 604800
                          interval: 3600
                      report_scopes:
                        - site
                        - org
                      scopes:
                        - site
                        - ap
                        - device
                      type: timeseries
                      unit: ""
              schema:
                additionalProperties:
                  properties:
                    description:
                      type: string
                    example:
                      items:
                        anyOf:
                          - nullable: true
                            type: object
                          - nullable: true
                            type: integer
                          - nullable: true
                            type: number
                          - nullable: true
                            type: string
                      type: array
                    intervals:
                      additionalProperties:
                        properties:
                          interval:
                            type: number
                          max_age:
                            type: number
                        type: object
                      type: object
                    report_intervals:
                      additionalProperties:
                        properties:
                          interval:
                            type: number
                        type: object
                      type: object
                    report_scopes:
                      items:
                        type: string
                      type: array
                    scopes:
                      items:
                        type: string
                      type: array
                    type:
                      type: string
                    unit:
                      type: string
                  type: object
                description: The property key is the metric name
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAvailableInsightMetrics
      tags:
        - Constants
  /api/v1/const/languages:
    get:
      description: Get List of Languages
      operationId: listSiteLanguages
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - display: English (US)
                      display_native: English (US)
                      key: en-US
                    - display: Chinese Traditional (Taiwan)
                      display_native: 中文（台灣）
                      key: zh-TW
              schema:
                items:
                  properties:
                    display:
                      type: string
                    display_native:
                      type: string
                    key:
                      type: string
                  required:
                    - display
                    - display_native
                    - key
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteLanguages
      tags:
        - Constants
  /api/v1/const/mxedge_events:
    get:
      description: Get List of available MX Edge Events
      operationId: listMxEdgeEventsDefinitions
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - description: Config change on ME was triggered as a result of change made by user
                      display: ME Config changed by user
                      example:
                        audit_id: e9a88814-fa81-5bdc-34b0-84e8735420e5
                        mxcluster_id: ed4665ed-c9ad-4835-8ca5-dda642765ad3
                        mxedge_id: 387804a7-3474-85ce-15a2-f9a9684c9c90
                        org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                        service: mxagent
                        site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                        timestamp: 1552408871
                        type: ME_CONFIG_CHANGED_BY_USER
                      key: ME_CONFIG_CHANGED_BY_USER
              schema:
                items:
                  properties:
                    description:
                      type: string
                    display:
                      type: string
                    example:
                      properties: {}
                      type: object
                    key:
                      type: string
                  type: object
                type: array
                x-examples:
                  example-1:
                    - description: Config change on ME was triggered as a result of change made by user
                      display: ME Config changed by user
                      example: {}
                      key: ME_CONFIG_CHANGED_BY_USER
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMxEdgeEventsDefinitions
      tags:
        - Constants
  /api/v1/const/mxedge_models:
    get:
      description: Get List of available Mx Edge models
      operationId: listMxEdgeModels
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - custom_ports: true
                      display: string
                      model: string
                      ports:
                        "0":
                          display: string
                          speed: 0
                        "1":
                          display: string
                          speed: 0
                        "2":
                          display: string
                          speed: 0
                        "3":
                          display: string
                          speed: 0
              schema:
                items:
                  properties:
                    custom_ports:
                      type: boolean
                    display:
                      type: string
                    model:
                      type: string
                    ports:
                      properties:
                        "0":
                          properties:
                            display:
                              type: string
                            speed:
                              type: integer
                          type: object
                        "1":
                          properties:
                            display:
                              type: string
                            speed:
                              type: integer
                          type: object
                        "2":
                          properties:
                            display:
                              type: string
                            speed:
                              type: integer
                          type: object
                        "3":
                          properties:
                            display:
                              type: string
                            speed:
                              type: integer
                          type: object
                      type: object
                  type: object
                type: array
                x-examples:
                  example-1:
                    - display: X1
                      model: ME-100
                      ports:
                        "0":
                          display: ge0
                          speed: 1000
                        "1":
                          display: ge1
                          speed: 1000
                    - display: X1
                      model: ME-X1
                      ports:
                        "0":
                          display: ge0
                          speed: 1000
                        "1":
                          display: ge1
                          speed: 1000
                    - display: X1-M
                      model: ME-X1-M
                      ports:
                        "0":
                          display: ge0
                          speed: 1000
                        "1":
                          display: ge1
                          speed: 1000
                        "2":
                          display: ge2
                          speed: 1000
                        "3":
                          display: ge3
                          speed: 1000
                    - display: X5
                      model: ME-200
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                    - display: X5
                      model: ME-201
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                    - display: X5
                      model: ME-X5
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                    - display: X5-M
                      model: ME-250
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: X5-M
                      model: ME-251
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: X5-M
                      model: ME-X5-M
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: X10
                      model: ME-300
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: X10
                      model: ME-301
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: X10
                      model: ME-X10
                      ports:
                        "0":
                          display: xe0
                          speed: 10000
                        "1":
                          display: xe1
                          speed: 10000
                        "2":
                          display: xe2
                          speed: 10000
                        "3":
                          display: xe3
                          speed: 10000
                    - display: VM
                      model: ME-VM
                      ports:
                        "0":
                          display: ge0
                          speed: 1000
                        "1":
                          display: ge1
                          speed: 1000
                    - custom_ports: true
                      model: Custom
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMxEdgeModels
      tags:
        - Constants
  /api/v1/const/traffic_types:
    get:
      description: Get List of identified traffic
      operationId: listTrafficTypes
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - dscp: 0
                      failover_policy: string
                      name: string
                      traffic_class: string
              schema:
                description: Get Traffic Types Constants
                items:
                  properties:
                    dscp:
                      type: number
                    failover_policy:
                      minLength: 1
                      type: string
                    name:
                      minLength: 1
                      type: string
                    traffic_class:
                      minLength: 1
                      type: string
                  required:
                    - name
                    - failover_policy
                    - traffic_class
                    - dscp
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - dscp: 0
                      failover_policy: non-revertible
                      name: data_best_effort
                      traffic_class: low
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listTrafficTypes
      tags:
        - Constants
  "/api/v1/installer/orgs/{org_id}/alarmtemplates":
    get:
      description: Get List of alarm templates
      operationId: listInstallerAlarmTemplates
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
                      name: AlarmTemplate 1
              schema:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - name
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerAlarmTemplates
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/installer/orgs/{org_id}/deviceprofiles":
    get:
      description: Get List of Device Profiles
      operationId: listInstallerDeviceProfiles
      parameters: []
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                      name: DeviceProfile 1
              schema:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - name
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerDeviceProfiles
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/installer/orgs/{org_id}/devices":
    get:
      description: Get List of recently claimed devices
      operationId: listInstallerListOfRenctlyClaimedDevices
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - connected: true
                      mac: 5c5b35000018
                      model: AP41
                      serial: FXLH2015150025
                    - connected: false
                      deviceprofile_name: SJ1
                      name: hallway
                      site_name: SJ1
                    - connected: true
                      height: 2.7
                      map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                      orientation: 90
                      x: 150
                      y: 300
              schema:
                items:
                  properties:
                    connected:
                      type: boolean
                    height:
                      type: number
                    map_id:
                      format: uuid
                      type: string
                    orientation:
                      type: number
                    x:
                      type: number
                    y:
                      type: number
                  required:
                    - connected
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerListOfRenctlyClaimedDevices
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: This mirrors `POST /api/v1/orgs/{org_id}/inventory` (see Inventory API)
      operationId: claimInstallerDevices
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - 6JG8E-PTFV2-A9Z2N
                  - DVH4V-SNMSZ-PDXBR
            schema:
              $ref: "#/components/schemas/Model_array_string"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  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
              schema:
                properties:
                  added:
                    items:
                      type: string
                    type: array
                  duplicated:
                    items:
                      type: string
                    type: array
                  error:
                    items:
                      type: string
                    type: array
                  inventory_added:
                    items:
                      properties:
                        mac:
                          type: string
                        magic:
                          type: string
                        model:
                          type: string
                        serial:
                          type: string
                        type:
                          type: string
                      required:
                        - serial
                        - model
                        - type
                        - magic
                        - mac
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  inventory_duplicated:
                    items:
                      properties:
                        mac:
                          type: string
                        magic:
                          type: string
                        model:
                          type: string
                        serial:
                          type: string
                        type:
                          type: string
                      required:
                        - serial
                        - model
                        - type
                        - magic
                        - mac
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                required:
                  - added
                  - duplicated
                  - error
                  - inventory_added
                  - inventory_duplicated
                type: object
          description: OK
        "400":
          description: Bad Request if none of the entries are valid
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: claimInstallerDevices
      tags:
        - Installer
  "/api/v1/installer/orgs/{org_id}/devices/{device_mac}":
    delete:
      description: Unassign recently claimed devices
      operationId: unassignInstallerRecentlyClaimedDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unassignInstallerRecentlyClaimedDevice
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_mac"
    put:
      description: |-
        Provision or Replace a device 

        If 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-1:
                value:
                  deviceprofile_name: string
                  for_site: true
                  height: 0
                  map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                  name: string
                  orientation: 0
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  site_name: string
                  x: 0
                  y: 0
            schema:
              $ref: "#/components/schemas/Installer_devices"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              examples:
                invalid mac given for replacing_mac:
                  value:
                    detail: invalid replacing_mac
                inventory device is already assigned:
                  value:
                    detail: device already assigned
                outsite_of_grace_period:
                  value:
                    detail: outside of grace period
                replacing_mac device is not assigned to a site:
                  value:
                    detail: replacing_mac device is unassigned
                replacing_mac device last modified outside of grace period:
                  value:
                    detail: replacing_mac device outside of grace period
              schema:
                properties:
                  detail:
                    type: string
                required:
                  - detail
                type: object
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                replacing_mac device is not in org inventory:
                  value:
                    detail: replacing_mac inventory not found
                replacing_mac device not found:
                  value:
                    detail: replacing_mac device not found
              schema:
                properties:
                  detail:
                    type: string
                type: object
                x-examples:
                  example-1:
                    detail: replacing_mac inventory not found
          description: Not Found
      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
      requestBody:
        content:
          application/json:
            schema:
              properties: {}
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      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":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: stopInstallerLocateDevice
      tags:
        - Installer
  "/api/v1/installer/orgs/{org_id}/devices/{device_mac}/{image_name}":
    delete:
      description: delete image
      operationId: deleteInstallerDeviceImage
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteInstallerDeviceImage
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/image_name"
      - $ref: "#/components/parameters/device_mac"
    post:
      description: Add image
      operationId: addInstallerDeviceImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/image_upload"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: addInstallerDeviceImage
      tags:
        - Installer
  "/api/v1/installer/orgs/{org_id}/rftemplates":
    get:
      description: Get List of RF Templates
      operationId: listInstallerRfTemplatesNames
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
                      name: RFTemplate 1
              schema:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - name
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerRfTemplatesNames
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/installer/orgs/{org_id}/secpolicies":
    get:
      description: Get List of Secuity Policies
      operationId: listInstallerSecPolicies
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
                      name: SecuPolicy 1
              schema:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - name
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerSecPolicies
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/installer/orgs/{org_id}/sitegroups":
    get:
      description: Get List of Site Groups
      operationId: listInstallerSiteGroups
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: 581328b6-e382-f54e-c9dc-999983183a34
                      name: SiteGroup 1
              schema:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - name
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerSiteGroups
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/installer/orgs/{org_id}/sites":
    get:
      description: Get List of Sites
      operationId: listInstallerSites
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  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
                      timezone: America/Los_Angeles
              schema:
                items:
                  properties:
                    address:
                      type: string
                    country_code:
                      type: string
                    id:
                      format: uuid
                      type: string
                    latlng:
                      properties:
                        lat:
                          type: number
                        lng:
                          type: number
                      required:
                        - lat
                        - lng
                      type: object
                    name:
                      type: string
                    timezone:
                      type: string
                  required:
                    - id
                    - name
                    - timezone
                    - country_code
                    - latlng
                    - address
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerSites
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/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-1:
                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/site"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrUpdateInstallerSites
      tags:
        - Installer
  "/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps":
    get:
      description: Get List of Maps
      operationId: listInstallerMaps
      responses:
        "200":
          $ref: "#/components/responses/MapsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listInstallerMaps
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/site_name"
  "/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:
            examples:
              example-1:
                value:
                  csv: string
                  file: string
                  json:
                    import_all_floorplans: false
                    import_height: false
                    import_orientation: false
                    vendor_name: ekahau
            schema:
              properties:
                csv:
                  format: binary
                  type: string
                file:
                  format: binary
                  type: string
                json:
                  properties:
                    import_all_floorplans:
                      default: false
                      type: boolean
                    import_height:
                      default: false
                      type: boolean
                    import_orientation:
                      default: false
                      type: boolean
                    vendor_name:
                      enum:
                        - ibwave
                        - ekahau
                      type: string
                  required:
                    - vendor_name
                  type: object
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/MapImport"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importInstallerMap
      tags:
        - Installer
  "/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps/{map_id}":
    delete:
      description: Delete Map
      operationId: deleteInstallerMap
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteInstallerMap
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/site_name"
      - $ref: "#/components/parameters/map_id"
    post:
      description: Create a MAP
      operationId: createInstallerMap
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  flags: {}
                  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
                      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
            schema:
              $ref: "#/components/schemas/map"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Map"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      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":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateInstallerMap
      tags:
        - Installer
  "/api/v1/installer/sites/{site_name}/optimize":
    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":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: optimizeInstallerRrm
      tags:
        - Installer
    parameters:
      - $ref: "#/components/parameters/site_name"
  "/api/v1/invite/verify/{token}":
    parameters:
      - $ref: "#/components/parameters/token"
    post:
      description: "**Note**: another call to ```GET /api/v1/self``` is required to see the new set of privileges"
      operationId: verifyAdminInvite
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                invalid secret:
                  value:
                    detail: invalid secret
                invite created by self:
                  value:
                    detail: invite created by self
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not Found
      summary: verifyAdminInvite
      tags:
        - Admin
  /api/v1/login:
    post:
      description: |-
        Log in with email/password.
        When 2FA is enabled, there are two ways to login:
        1. login with two_factor token (with Google Authenticator, etc) 
        2. login with email/password, generate the token, and use /login/two_factor with the token
      operationId: login
      requestBody:
        content:
          application/json:
            examples:
              with 2FA:
                value:
                  email: string
                  password: string
                  two_factor: string
              without 2FA:
                value:
                  email: string
                  password: string
            schema:
              properties:
                email:
                  type: string
                password:
                  type: string
                two_factor:
                  type: string
              required:
                - email
                - password
              type: object
      responses:
        "200":
          content:
            application/json:
              examples:
                2FA Required:
                  value:
                    email: test@mistsys.com
                    two_factor_passed: false
                    two_factor_required: true
                OK:
                  value: {}
              schema:
                properties:
                  email:
                    type: string
                  two_factor_passed:
                    type: boolean
                  two_factor_required:
                    type: boolean
                type: object
          description: Login Success
          headers:
            Set-Cookie:
              description: Session Cookie if login/password authentication is successful
              schema:
                example: csrftoken=vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx; expires=Tue, 15-Mar-2016 19:47:20 GMT; Max-Age=31449600; Path=/
                type: string
        "400":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    detail: sso admin login needs to be initiated by IdP
                    forward_url: https://my.sso/idp_sso_url
              schema:
                oneOf:
                  - properties:
                      detail:
                        type: string
                      forward_url:
                        type: string
                    required:
                      - detail
                    type: object
          description: Login Failed
      summary: login
      tags:
        - Login
  /api/v1/login/lookup:
    post:
      description: Login Lookup
      operationId: lookup
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: test@mistsys.com
            schema:
              $ref: "#/components/schemas/Model_object_email"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                SSO user exists:
                  value:
                    sso_url: https://my.sso/idp_sso_url
                local user exists:
                  value: {}
              schema:
                properties:
                  sso_url:
                    type: string
                type: object
          description: account exists
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          description: user does not exist
      summary: lookup
      tags:
        - Login
  "/api/v1/login/oauth/{provider}":
    delete:
      description: Unlink OAuth2 Provider
      operationId: unlinkOAuth2Provider
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unlinkOAuth2Provider
      tags:
        - Login With OAuth2
    get:
      description: Obtain Authorization URL for Login
      operationId: getOAuth2AuthorizationUrlForLogin
      parameters:
        - in: query
          name: forward
          schema:
            example: http://manage.mist.com/oauth/callback.html
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    authorization_url: https://accounts.google.com/o/oauth2/v2/auth?.....
                    client_id: 173131512-mpbnju32.apps.googleusercontent.com
              schema:
                properties:
                  authorization_url:
                    type: string
                  client_id:
                    type: string
                required:
                  - client_id
                  - authorization_url
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOAuth2AuthorizationUrlForLogin
      tags:
        - Login With OAuth2
    parameters:
      - in: path
        name: provider
        required: true
        schema:
          type: string
    post:
      description: Login via OAuth2
      operationId: loginOAuth2
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  code: 4/S9tegDeLkrYg0L9pWNXV4cgMVbbr3SR9t693A2kSHzw
            schema:
              properties:
                code:
                  type: string
              required:
                - code
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: loginOAuth2
      tags:
        - Login With OAuth2
  /api/v1/login/two_factor:
    post:
      description: Send 2FA Code
      operationId: twoFactor
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  two_factor: "123456"
            schema:
              properties:
                two_factor:
                  type: string
              required:
                - two_factor
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: two_factor code is correct
          headers: {}
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          description: two_factor code is incorrect or the user hasn’t login yet
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          description: the user doesn’t have 2FA enabled
      summary: twoFactor
      tags:
        - Login With OAuth2
  /api/v1/logout:
    post:
      description: Logout
      operationId: logout
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    forward_url: https://my.sso/custom_logout_url
              schema:
                properties:
                  forward_url:
                    description: if configured in SSO as custom_logout_url
                    type: string
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: logout
      tags:
        - Login
  "/api/v1/mobile/verify/{secret}":
    parameters:
      - $ref: "#/components/parameters/secret"
    post:
      description: Verify secret
      operationId: activateSdkInvite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/Model_object_device_id"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    name: Macy's
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    secret: device-specific-secret
              schema:
                properties:
                  name:
                    type: string
                  org_id:
                    format: uuid
                    type: string
                  secret:
                    type: string
                required:
                  - name
                  - org_id
                  - secret
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: activateSdkInvite
      tags:
        - Mobile
  /api/v1/msps:
    post:
      description: Create MSP account
      operationId: createMsp
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: MSP
            schema:
              $ref: "#/components/schemas/Msp"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Msp"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createMsp
      tags:
        - Msps
  "/api/v1/msps/{msp_id}":
    delete:
      description: Deleting MSP removes the MSP and OrgGroup under the MSP as well as all privileges associated with them. It does not remove any Org or Admins
      operationId: deleteMsp
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteMsp
      tags:
        - Msps
    get:
      description: Get MSP Detail
      operationId: getMspDetails
      responses:
        "200":
          $ref: "#/components/responses/Msp"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspDetails
      tags:
        - Msps
    parameters:
      - $ref: "#/components/parameters/msp_id"
    put:
      description: Update MSP
      operationId: updateMsp
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: MSP
            schema:
              $ref: "#/components/schemas/Msp"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Msp"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMsp
      tags:
        - Msps
  "/api/v1/msps/{msp_id}/admins":
    get:
      description: Get List of MSP Admins
      operationId: listMspAdmins
      responses:
        "200":
          $ref: "#/components/responses/AdminsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspAdmins
      tags:
        - Msps Admins
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/admins/{admin_id}":
    delete:
      description: This removes all privileges this admin has against the MSP. This goes deep all the way to the sites
      operationId: revokeMspAdmin
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: revokeMspAdmin
      tags:
        - Msps Admins
    get:
      description: Get MSP Admins
      operationId: getMspAdmin
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspAdmin
      tags:
        - Msps Admins
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/admin_id"
    put:
      description: Update MSP Admin
      operationId: updateMspAdmin
      requestBody:
        content:
          application/json:
            examples:
              example-2:
                value:
                  admin_id: 919c4da0-421a-479a-918d-df80e426d3bf
                  email: user@example.com
                  enable_two_factor: true
                  first_name: string
                  last_name: string
                  oauth_google: true
                  privileges:
                    - for_site: true
                      msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  session_expiry: 0
                  tags:
                    - string
                  two_factor_verified: true
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMspAdmin
      tags:
        - Msps Admins
  "/api/v1/msps/{msp_id}/claim":
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Claim an Order by Activation Code
      operationId: claimMspLicence
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  code: ZHT3K-H36DT-MG85D-M61AC
            schema:
              description: ""
              properties:
                code:
                  description: activation code
                  minLength: 1
                  type: string
              required:
                - code
              type: object
              x-examples:
                example-1:
                  code: ZHT3K-H36DT-MG85D-M61AC
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/claimLicense"
        "400":
          description: Response when the key is invalid (or already used)
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: claimMspLicence
      tags:
        - Msps Licenses
  "/api/v1/msps/{msp_id}/insights/{metric}":
    get:
      description: Get MSP SLEs (all/worst Orgs ...)
      operationId: getMspSle
      parameters:
        - description: see /api/v1/const/insight_metrics for more details
          in: query
          name: sle
          schema:
            type: string
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
      responses:
        "200":
          content:
            application/json:
              examples:
                orgs-sle:
                  value:
                    end: 1643706000
                    interval: 3600
                    limit: 100
                    results:
                      - ap-availability: 0.9919400860511628
                        ap-health: 0.967607512909879
                        capacity: 0.7484652273070254
                        coverage: 0.91217567374857
                        num_aps: 13
                        num_clients: 12
                        org_id: 978c48e6-6ef6-11e6-8bbf-02e208b2d34f
                        roaming: 0.991735537682683
                        roaming-exp: 0.991735537682683
                        successful-connect: 0.46052632135780236
                        throughput: 0.6775702123846302
                        time-to-connect: 0.9349112447196916
                      - ap-availability: 0.9990384613092129
                        ap-health: 0.48201754375507955
                        capacity: 0.9702673450306101
                        coverage: 0.8335392334930375
                        num_aps: 1
                        num_clients: 6
                        org_id: 49ff76e0-a283-4e7d-b38d-041f1e9aff3c
                        roaming: 1
                        roaming-exp: 1
                        successful-connect: 1
                        throughput: 0
                        time-to-connect: 1
                      - ap-availability: 1
                        ap-health: 0.982456140612301
                        capacity: 1
                        coverage: 0.9276041182442488
                        num_aps: 2
                        num_clients: 3
                        org_id: 9b9b48f1-15a4-459e-86cc-9cbec9005983
                        roaming: 1
                        roaming-exp: 1
                        successful-connect: 1
                        throughput: 1
                        time-to-connect: 0.8125
                      - ap-availability: 0.9981132070973234
                        ap-health: 0.9991228068084047
                        capacity: 1
                        coverage: 1
                        num_aps: 1
                        num_clients: 0
                        org_id: eb0e1671-7a6b-472b-94c3-c187dafe5274
                        roaming: 1
                        roaming-exp: 1
                        successful-connect: 1
                        throughput: 0
                        time-to-connect: 0.5
                    start: 1643670000
              schema:
                description: ""
                properties:
                  end:
                    type: number
                  interval:
                    type: number
                  limit:
                    type: number
                  results:
                    items:
                      additionalProperties: {}
                      type: object
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                required:
                  - start
                  - end
                  - interval
                  - limit
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspSle
      tags:
        - Msps SLEs
    parameters:
      - in: path
        name: msp_id
        required: true
        schema:
          example: 000000ab-00ab-00ab-00ab-0000000000ab
          format: uuid
          type: string
      - description: see /api/v1/const/insight_metrics for available metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/msps/{msp_id}/inventory/{device_mac}":
    get:
      description: Get Inventoy By device MAC address
      operationId: getMspInventoryByMac
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    mac: 5c5b35000018
                    model: AP200
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    serial: FXLH2015150025
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    type: ap
              schema:
                properties:
                  for_site:
                    readOnly: true
                    type: boolean
                  mac:
                    readOnly: true
                    type: string
                  model:
                    readOnly: true
                    type: string
                  org_id:
                    format: uuid
                    readOnly: true
                    type: string
                  serial:
                    readOnly: true
                    type: string
                  site_id:
                    format: uuid
                    readOnly: true
                    type: string
                  type:
                    readOnly: true
                    type: string
                required:
                  - serial
                  - model
                  - type
                  - mac
                  - org_id
                  - site_id
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspInventoryByMac
      tags:
        - Msps Inventory
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/device_mac"
  "/api/v1/msps/{msp_id}/invites":
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: |-
        Invite MSP Admin

        **Note**: An email will also be sent to the user with a link to https://manage.mist.com/verify/invite?token=:token
      operationId: inviteMspAdmin
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: user@example.com
                  first_name: string
                  last_name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: inviteMspAdmin
      tags:
        - Msps Invites
  "/api/v1/msps/{msp_id}/invites/{invite_id}":
    delete:
      description: Delete admin invite
      operationId: uninviteMspAdmin
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uninviteMspAdmin
      tags:
        - Msps Invites
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/invite_id"
    put:
      description: Update MSP admin invite
      operationId: updateMspAdminInvite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: user@example.com
                  first_name: string
                  last_name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMspAdminInvite
      tags:
        - Msps Invites
  "/api/v1/msps/{msp_id}/licenses":
    get:
      description: Get List of Msp Licenses
      operationId: listMspLicenses
      responses:
        "200":
          $ref: "#/components/responses/Licence"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspLicenses
      tags:
        - Msps Licenses
    parameters:
      - $ref: "#/components/parameters/msp_id"
    put:
      description: Move or Delete MSP Licenses
      operationId: moveOrDeleteMspLicenseToAnotherOrg
      requestBody:
        content:
          application/json:
            examples:
              Delete License:
                value:
                  op: delete
                  subscription_id: SUB-0000144
              Move License:
                value:
                  dst_org_id: 3eff35f7-c218-894e-bca2-24e5325601cc
                  op: amend
                  quantity: 10
                  subscription_id: SUB-0000144
              Undo the License Move:
                value:
                  amendment_id: 2b9116ab-cd1e-e897-6e08-31fccd88e792
                  op: unamend
            schema:
              properties:
                dst_org_id:
                  description: required if `op`==`amend`, destination org id
                  minLength: 1
                  type: string
                notes:
                  description: required if `op`== `annotate`
                  type: string
                op:
                  enum:
                    - amend
                    - unamend
                    - delete
                    - annotate
                  minLength: 1
                  type: string
                quantity:
                  description: required if `op`==`amend`
                  type: number
                subscription_id:
                  description: required if `op`==`unamend` or `op`== `annotate`
                  minLength: 1
                  type: string
              required:
                - op
              type: object
              x-examples:
                example-1:
                  dst_org_id: 3eff35f7-c218-894e-bca2-24e5325601cc
                  op: amend
                  quantity: 10
                  subscription_id: SUB-0000144
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: moveOrDeleteMspLicenseToAnotherOrg
      tags:
        - Msps Licenses
  "/api/v1/msps/{msp_id}/logo":
    delete:
      description: Delete MSP Logo
      operationId: deleteMspLogo
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteMspLogo
      tags:
        - Msps Logo
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Upload Logo (only for advanced msp tier)
      operationId: postMspLogo
      requestBody:
        content:
          application/json:
            schema:
              properties:
                logo_url:
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: postMspLogo
      tags:
        - Msps Logo
  "/api/v1/msps/{msp_id}/logs":
    get:
      description: Get list of change logs for the current MSP
      operationId: listMspLogs
      parameters:
        - in: query
          name: org_id
          schema:
            type: string
        - description: admin name or email
          in: query
          name: admin_name
          schema:
            type: string
        - in: query
          name: message
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/LogsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspLogs
      tags:
        - Msps Logs
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/logs/count":
    get:
      description: Count by Distinct Attributes of Audit Logs
      operationId: countMspLogs
      parameters:
        - in: query
          name: distinct
          schema:
            default: admin_name
            enum:
              - admin_id
              - admin_name
              - message
              - org_id
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countMspLogs
      tags:
        - Msps Logs
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/orggroups":
    get:
      description: Get List of MSP Org Groups
      operationId: listMspOrgGroups
      responses:
        "200":
          $ref: "#/components/responses/OrggroupsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspOrgGroups
      tags:
        - Msps Org Groups
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Create MSP Org Group
      operationId: createMspOrgGroup
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  org_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/orggroup"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Orggroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createMspOrgGroup
      tags:
        - Msps Org Groups
  "/api/v1/msps/{msp_id}/orggroups/{orggroup_id}":
    delete:
      description: Delete MSP Org Group
      operationId: deleteMspOrgGroup
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteMspOrgGroup
      tags:
        - Msps Org Groups
    get:
      description: Get MSP Org Group Details
      operationId: getMspOrgGroup
      responses:
        "200":
          $ref: "#/components/responses/Orggroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspOrgGroup
      tags:
        - Msps Org Groups
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/orggroup_id"
    put:
      description: Update MSP Org Group
      operationId: updateMspOrgGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/orggroup"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Orggroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMspOrgGroup
      tags:
        - Msps Org Groups
  "/api/v1/msps/{msp_id}/orgs":
    get:
      description: Get List of MSP Orgs
      operationId: listMspOrgs
      responses:
        "200":
          $ref: "#/components/responses/OrgsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspOrgs
      tags:
        - Msps Orgs
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Create an Org under MSP
      operationId: createMspOrg
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  allow_mist: true
                  name: string
                  orggroup_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  session_expiry: 10
            schema:
              $ref: "#/components/schemas/org"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Org"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createMspOrg
      tags:
        - Msps Orgs
    put:
      description: Assign or Unassign Orgs to an MSP account
      operationId: manageMspOrgs
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  op: assign
                  org_ids:
                    - 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              properties:
                op:
                  enum:
                    - assign
                    - unassign
                  type: string
                org_ids:
                  description: list of org_id
                  items:
                    type: string
                  type: array
              required:
                - op
                - org_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: manageMspOrgs
      tags:
        - Msps Orgs
  "/api/v1/msps/{msp_id}/orgs/search":
    get:
      description: Search Org in MSP
      operationId: searchMspOrgs
      parameters:
        - $ref: "#/components/parameters/name"
        - description: org id
          in: query
          name: org_id
          schema:
            format: uuid
            type: string
        - description: if this org has sufficient subscription
          in: query
          name: sub_insufficient
          schema:
            type: boolean
        - description: if this org is under trial period
          in: query
          name: trial_enabled
          schema:
            type: boolean
        - description: a list of types that enabled by usage
          in: query
          name: usage_types
          schema:
            items:
              type: string
            type: array
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/OrgsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchMspOrgs
      tags:
        - Msps Orgs
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/orgs/{org_id}":
    get:
      description: Get MSP Org Details
      operationId: getMspOrg
      responses:
        "200":
          $ref: "#/components/responses/Org"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspOrg
      tags:
        - Msps Orgs
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/org_id"
  "/api/v1/msps/{msp_id}/search":
    get:
      description: Search in MSP Orgs
      operationId: searchMspOrgGroup
      parameters:
        - description: orgs
          example: orgs
          in: query
          name: type
          required: true
          schema:
            enum:
              - orgs
            type: string
        - $ref: "#/components/parameters/q"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/OrggroupsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchMspOrgGroup
      tags:
        - Msps Search
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/ssoroles":
    get:
      description: Get List of MSP SSO Roles
      operationId: listMspSsoRoles
      responses:
        "200":
          $ref: "#/components/responses/SsorolesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspSsoRoles
      tags:
        - Msps SSO Roles
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Create MSP Role
      operationId: createMspSsoRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ssorole"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ssorole"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createMspSsoRole
      tags:
        - Msps SSO Roles
  "/api/v1/msps/{msp_id}/ssoroles/{ssorole_id}":
    delete:
      description: Delete MSP SSO Roles
      operationId: deleteMspSsoRole
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteMspSsoRole
      tags:
        - Msps SSO Roles
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/ssorole_id"
    put:
      description: Update SSO Role
      operationId: updateMspSsoRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ssorole"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ssorole"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMspSsoRole
      tags:
        - Msps SSO Roles
  "/api/v1/msps/{msp_id}/ssos":
    get:
      description: Get MSP SSO Config
      operationId: getMspSso
      responses:
        "200":
          $ref: "#/components/responses/SsosArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspSso
      tags:
        - Msps SSO
    parameters:
      - $ref: "#/components/parameters/msp_id"
    post:
      description: Create MSP SSO profile
      operationId: createMspSso
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sso"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sso"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createMspSso
      tags:
        - Msps SSO
  "/api/v1/msps/{msp_id}/ssos/{sso_id}":
    delete:
      description: Delete MSP SSO Config
      operationId: deleteMspSso
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteMspSso
      tags:
        - Msps SSO
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/sso_id"
    put:
      description: Update MSP SSO config
      operationId: updateMspSso
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  custom_logout_url: string
                  idp_cert: string
                  idp_sign_algo: string
                  idp_sso_url: string
                  ignore_unmatched_roles: true
                  issuer: string
                  name: string
                  nameid_format: email
            schema:
              $ref: "#/components/schemas/sso"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sso"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateMspSso
      tags:
        - Msps SSO
  "/api/v1/msps/{msp_id}/ssos/{sso_id}/failures":
    get:
      description: Get List of MSP SSO Latest Failures
      operationId: listMspSsoLatestFailures
      responses:
        "200":
          $ref: "#/components/responses/SsoLatestFailures"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspSsoLatestFailures
      tags:
        - Msps SSO
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/msps/{msp_id}/ssos/{sso_id}/metadata":
    get:
      description: Get MSP SSO SAML Metadata
      operationId: getMspSsoSamlMetadata
      responses:
        "200":
          $ref: "#/components/responses/SsoSamlMetadata"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getMspSsoSamlMetadata
      tags:
        - Msps SSO
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/msps/{msp_id}/ssos/{sso_id}/metadata.xml":
    get:
      description: |-
        Download MSP SSO SAML Metadata

        Example of metadata.xml:
        ```xml
        <?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://api.mist.com/api/v1/saml/5hdF5g/login" validUntil="2027-10-12T21:59:01Z" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
                <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/5hdF5g/logout" />
                <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
                <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/5hdF5g/login" index="0" isDefault="true"/>
                <md:AttributeConsumingService index="0">
                    <md:ServiceName xml:lang="en-US">Mist</md:ServiceName>
                    <md:RequestedAttribute Name="Role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="true"/>
                    <md:RequestedAttribute Name="FirstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="false"/>
                    <md:RequestedAttribute Name="LastName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="false"/>
                </md:AttributeConsumingService>
            </md:SPSSODescriptor>
        </md:EntityDescriptor>
        ```
      operationId: downloadMspSsoSamlMetadata
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: downloadMspSsoSamlMetadata
      tags:
        - Msps SSO
    parameters:
      - $ref: "#/components/parameters/msp_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/msps/{msp_id}/stats/licenses":
    get:
      description: Get List of MSP Licences
      operationId: listMspOrgLicenses
      parameters: []
      responses:
        "200":
          $ref: "#/components/responses/Licence"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspOrgLicenses
      tags:
        - Msps Stats
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/stats/orgs":
    get:
      description: Get List of MSP Orgs Stats
      operationId: listMspOrgStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/OrgsArrayStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspOrgStats
      tags:
        - Msps Stats
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/tickets":
    get:
      description: Get List of Tickets of a MSP
      operationId: listMspTickets
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/TicketsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listMspTickets
      tags:
        - Msps Tickets
    parameters:
      - $ref: "#/components/parameters/msp_id"
  "/api/v1/msps/{msp_id}/tickets/count":
    get:
      description: Count tickets
      operationId: countMspTickets
      parameters:
        - in: query
          name: distinct
          schema:
            default: status
            enum:
              - status
              - type
              - org_id
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countMspTickets
      tags:
        - Msps Tickets
    parameters:
      - $ref: "#/components/parameters/msp_id"
  /api/v1/orgs:
    post:
      description: Org admin can invite people to manage the org. Furthermore, he can dictate the level of security those accounts are. The check is enforced when the invited admin tries to “accept” the invitation and every time the admin tries to login
      operationId: createOrg
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  allow_mist: true
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  orggroup_ids:
                    - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  session_expiry: 0
            schema:
              $ref: "#/components/schemas/org"
      responses:
        "200":
          $ref: "#/components/responses/Org"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrg
      tags:
        - Orgs
  "/api/v1/orgs/{org_id}":
    delete:
      description: Delete Org
      operationId: deleteOrg
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrg
      tags:
        - Orgs
    get:
      description: Get Organization information
      operationId: getOrgInfo
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    alarmtemplate_id: null
                    allow_mist: true
                    created_time: 1652905706
                    id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    modified_time: 1652905706
                    msp_id: b9d42c2e-88ee-41f8-b798-f009ce7fe909
                    msp_logo_url: https://.../logo/b9d42c2e-88ee-41f8-b798-f009ce7fe909.jpeg
                    msp_name: MSP
                    name: Org
                    session_expiry: 1440
              schema:
                $ref: "#/components/schemas/org_info"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrg
      tags:
        - Orgs
    parameters:
      - $ref: "#/components/parameters/org_id"
    put:
      description: Update Org
      operationId: updateOrg
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarmtemplate_id: 1984805d-2be2-4aec-a8d4-3ddf67fab0df
                  allow_mist: true
                  created_time: 0
                  id: 497f6eca-6276-5021-bfeb-53cbbbba6f08
                  modified_time: 0
                  msp_id: c0cf23fc-d82f-4219-988c-82fb61d8c875
                  name: string
                  orggroup_ids: []
                  session_expiry: 1440
            schema:
              $ref: "#/components/schemas/org"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Org"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrg
      tags:
        - Orgs
  "/api/v1/orgs/{org_id}/128routers/register_cmd":
    get:
      description: 128T devices can be managed/adopted by Mist.
      operationId: getOrg128TRegistrationCommands
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    conductor_cmd: register mist eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdfaWQiOiIyODE4ZTM4Ni04ZGVjLTI1NjItOWVkZS01YjhhMGZiYmRjNzEiLCJzdmMiOiIxMjhyb3V0ZXIiLCJwcm92aWRlciI6ImF3cyIsImVudiI6ImxvY2FsIiwiZXB0ZXJtX3VybCI6IndzczovL2xvY2FsL3dzIiwiaWF0IjoxNjEzODQ3NDg0LCJleHAiOjE2NDUzODM0ODR9.YnhgThKYAj1uaooi6j-zY8dMipp5YqJxnn79B9TB5XQ
                    registration_code: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdfaWQiOiIyODE4ZTM4Ni04ZGVjLTI1NjItOWVkZS01YjhhMGZiYmRjNzEiLCJzdmMiOiIxMjhyb3V0ZXIiLCJwcm92aWRlciI6ImF3cyIsImVudiI6ImxvY2FsIiwiZXB0ZXJtX3VybCI6IndzczovL2xvY2FsL3dzIiwiaWF0IjoxNjEzODQ3NDg0LCJleHAiOjE2NDUzODM0ODR9.YnhgThKYAj1uaooi6j-zY8dMipp5YqJxnn79B9TB5XQ
                    router_shell_cmd: 128agent register --registration-code eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdfaWQiOiIyODE4ZTM4Ni04ZGVjLTI1NjItOWVkZS01YjhhMGZiYmRjNzEiLCJzdmMiOiIxMjhyb3V0ZXIiLCJwcm92aWRlciI6ImF3cyIsImVudiI6ImxvY2FsIiwiZXB0ZXJtX3VybCI6IndzczovL2xvY2FsL3dzIiwiaWF0IjoxNjEzODQ3NDg0LCJleHAiOjE2NDUzODM0ODR9.YnhgThKYAj1uaooi6j-zY8dMipp5YqJxnn79B9TB5XQ
              schema:
                properties:
                  conductor_cmd:
                    type: string
                  registration_code:
                    type: string
                  router_shell_cmd:
                    type: string
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrg128TRegistrationCommands
      tags:
        - Orgs 128T
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/admins":
    get:
      description: Get List of people who can manage the Site/Org under the Org
      operationId: listOrgAdmins
      responses:
        "200":
          $ref: "#/components/responses/AdminsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAdmins
      tags:
        - Orgs Admins
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/admins/{admin_id}":
    delete:
      description: This removes all privileges this admin has against the org
      operationId: revokeOrgAdmin
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: revokeOrgAdmin
      tags:
        - Orgs Admins
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/admin_id"
    put:
      description: Invite Org Admin
      operationId: updateOrgAdmin
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: user@example.com
                  expire_time: 0
                  first_name: string
                  invite_id: string
                  last_name: string
                  privileges:
                    - role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAdmin
      tags:
        - Orgs Admins
  "/api/v1/orgs/{org_id}/alarms/ack":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Ack multiple Org Alarms
      operationId: multiAckOrgAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarm_ids:
                    - ccb8c94d-ca56-4075-932f-1f2ab444ff2c
                    - 98ff4a3d-ec9b-4138-a42e-54fc3335179d
                  note: maintenance window
            schema:
              properties:
                alarm_ids:
                  items:
                    format: uuid
                    type: string
                  type: array
                note:
                  description: Some text note describing the intent
                  type: string
              required:
                - alarm_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiAckOrgAlarms
      tags:
        - Orgs Alarms
  "/api/v1/orgs/{org_id}/alarms/ack_all":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Ack all Org Alarms

        **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.
      operationId: ackOrgAllAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: string
            schema:
              $ref: "#/components/schemas/note"
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: ackOrgAllAlarms
      tags:
        - Orgs Alarms
  "/api/v1/orgs/{org_id}/alarms/count":
    get:
      description: Count Org Alarms
      operationId: countOrgAlarms
      parameters:
        - in: query
          name: distinct
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgAlarms
      tags:
        - Orgs Alarms
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/alarms/search":
    get:
      description: Search Org Alarms
      operationId: searchOrgAlarms
      parameters:
        - in: query
          name: site_id
          schema:
            type: string
        - in: query
          name: type
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/AlarmsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgAlarms
      tags:
        - Orgs Alarms
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/alarms/unack":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Unack multiple Org Alarms
      operationId: multiUnackOrgAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarm_ids:
                    - ccb8c94d-ca56-4075-932f-1f2ab444ff2c
                    - 98ff4a3d-ec9b-4138-a42e-54fc3335179d
                  note: maintenance window
            schema:
              properties:
                alarm_ids:
                  items:
                    format: uuid
                    type: string
                  type: array
                note:
                  description: Some text note describing the intent
                  type: string
              required:
                - alarm_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiUnackOrgAlarms
      tags:
        - Orgs Alarms
  "/api/v1/orgs/{org_id}/alarms/unack_all":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Unack all Org Alarms

        **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.
      operationId: unackOrgAllArlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: maintenance window
            schema:
              $ref: "#/components/schemas/note"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unackOrgAllArlarms
      tags:
        - Orgs Alarms
  "/api/v1/orgs/{org_id}/alarms/{alarm_id}/ack":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/alarm_id"
    post:
      description: Ack Org Alarm
      operationId: ackOrgAlarm
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: maintenance window
            schema:
              $ref: "#/components/schemas/note"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: ackOrgAlarm
      tags:
        - Orgs Alarms
  "/api/v1/orgs/{org_id}/alarmtemplates":
    get:
      description: Get List of Org Alarm Templates
      operationId: listOrgAlarmTemplates
      responses:
        "200":
          $ref: "#/components/responses/AlarmtemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAlarmTemplates
      tags:
        - Orgs Alarm Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Available rules can be found in Orgs>Consts>getAlarmDefs

        The delivery dict is only required if different from the template delivery settings.
      operationId: createOrgAlarmTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/alarmtemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Alarmtemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgAlarmTemplate
      tags:
        - Orgs Alarm Templates
  "/api/v1/orgs/{org_id}/alarmtemplates/suppress":
    delete:
      description: Un-Suppress Suppressed Alarms
      operationId: unsuppressOrgSuppressedAlarms
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unsuppressOrgSuppressedAlarms
      tags:
        - Orgs Alarm Templates
    get:
      description: Get List of Org Alarms Currently Suppressed
      operationId: listOrgSuppressedAlarms
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    results:
                      - duration: 48
                        site_id: 581328b6-e382-f54e-c9dc-9c998d183a34
              schema:
                properties:
                  results:
                    items:
                      properties:
                        duration:
                          description: remaining_duration, in seconds.
                          type: integer
                        site_id:
                          type: string
                      type: object
                    type: array
                type: object
                x-examples:
                  Example 1:
                    results:
                      - duration: 48
                        site_id: 581328b6-e382-f54e-c9dc-9c998d183a34
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSuppressedAlarms
      tags:
        - Orgs Alarm Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: In certain situations, for example, scheduled maintanance, you may want to suspend alarms to be triggered for a period of time.
      operationId: suppressOrgAlarm
      requestBody:
        content:
          application/json:
            schema:
              properties:
                applies:
                  description: Object defines the scope (within the org e.g. whole org, and/or some site-groups, and/or some sites) for which the alarm service has to be suppressed for some `duration`
                  properties:
                    org_id:
                      description: UUID of the current org (if provided, the alarms will be suppressed at org level)
                      format: uuid
                      minLength: 1
                      type: string
                    site_ids:
                      description: List of UUID of the sites within the org (if provided, the alarms will be suppressed for all the mentioned sites under the org)
                      items:
                        format: uuid
                        type: string
                      type: array
                    sitegroup_ids:
                      description: List of UUID of the site groups within the org (if provided, the alarms will be suppressed for all the sites under those site groups)
                      items:
                        format: uuid
                        type: string
                      type: array
                  required:
                    - org_id
                    - site_ids
                    - sitegroup_ids
                  type: object
                duration:
                  default: 3600
                  description: duration, in seconds. 0 is to un-suppress alarms
                  maximum: 86400
                  minimum: 0
                  type: number
                scheduled_time:
                  description: poch_time in seconds, Default as now, accepted time range is from now to now + 7 days
                  type: integer
              required:
                - applies
              type: object
              x-examples:
                example-1:
                  applies:
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    site_ids:
                      - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    sitegroup_ids:
                      - 581328b6-e382-f54e-c9dc-999983183a34
                      - f57096b9-0c2f-4df6-c77b-ae6ae87a3d43
                  duration: 60
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: suppressOrgAlarm
      tags:
        - Orgs Alarm Templates
  "/api/v1/orgs/{org_id}/alarmtemplates/{alarmtemplate_id}":
    delete:
      description: Delete Org Alarm Template
      operationId: deleteOrgAlarmTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgAlarmTemplate
      tags:
        - Orgs Alarm Templates
    get:
      description: Get Org Alarm Template Details
      operationId: getOrgAlarmTemplate
      responses:
        "200":
          $ref: "#/components/responses/Alarmtemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgAlarmTemplate
      tags:
        - Orgs Alarm Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/alarmtemplate_id"
    put:
      description: Update Org Alarm Template
      operationId: updateOrgAlarmTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  delivery:
                    additional_emails:
                      - string
                    enabled: true
                    to_org_admins: true
                    to_site_admins: true
                  name: string
                  rules:
                    adhoc_network:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    air_magnet_scan:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    ap_offline:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    bad_cable:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    beacon_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    bssid_spoofing:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    device_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    device_restarted:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    dhcp_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    disassociation_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    dot1x_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_dictionary_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_failure_injection:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_handshake_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_spoofed_success:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eapol_logoff_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    essid_jack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    excessive_client:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    excessive_eapol_start:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gateway_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gw_bad_cable:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gw_negotiation_mismatch:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    honeypot_ssid:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    krack_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    missing_vlan:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    monkey_jack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    negotiation_mismatch:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    non_compliant:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    out_of_sequence:
                      enabled: true
                    psk_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    repeated_auth_failures:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    rogue_ap:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    rogue_client:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    secpolicy_violation:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    ssid_injection:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    switch_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    tkip_icv_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    vendor_ie_missing:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    watched_station:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    zero_ssid_association:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
            schema:
              $ref: "#/components/schemas/alarmtemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Alarmtemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAlarmTemplate
      tags:
        - Orgs Alarm Templates
  "/api/v1/orgs/{org_id}/apitokens":
    get:
      description: Get List of Org API Tokens
      operationId: listOrgApiTokens
      responses:
        "200":
          $ref: "#/components/responses/ApitokensArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgApiTokens
      tags:
        - Orgs API Tokens
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Create Org API Token
        Note that the token key is only available during creation time.
      operationId: createOrgApiToken
      requestBody:
        content:
          application/json:
            schema:
              description: ""
              properties:
                name:
                  minLength: 1
                  type: string
                privileges:
                  description: list of privileges the token has on the orgs/sites
                  items:
                    properties:
                      role:
                        enum:
                          - admin
                          - write
                          - read
                        minLength: 1
                        type: string
                      scope:
                        enum:
                          - site
                          - org
                          - sitegroup
                        minLength: 1
                        type: string
                      site_id:
                        description: if `scope`==`site`
                        format: uuid
                        type: string
                      sitegroup_id:
                        description: if `scope`==`sitegroup`
                        format: uuid
                        type: string
                    required:
                      - scope
                      - role
                      - site_id
                    type: object
                  minItems: 1
                  type: array
                  uniqueItems: true
              required:
                - name
                - privileges
              type: object
              x-examples:
                example-1:
                  name: org_token_xyz
                  privileges:
                    - role: read
                      scope: org
                    - role: admin
                      scope: site
                      site_id: d96e3952-53e8-4266-959a-45acd55f5114
                    - role: write
                      scope: sitegroup
                      sitegroup_id: 581328b6-e382-f54e-c9dc-999983183a34
      responses:
        "200":
          $ref: "#/components/responses/Apitoken"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgApiToken
      tags:
        - Orgs API Tokens
  "/api/v1/orgs/{org_id}/apitokens/{apitoken_id}":
    delete:
      description: Delete Org API Token
      operationId: deleteOrgApiToken
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgApiToken
      tags:
        - Orgs API Tokens
    get:
      description: Get Org API Token
      operationId: getOrgApiToken
      responses:
        "200":
          $ref: "#/components/responses/Apitoken"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgApiToken
      tags:
        - Orgs API Tokens
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/apitoken_id"
    put:
      description: Update Org API Token
      operationId: updateOrgApiToken
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  key: string
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/apitoken"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Apitoken"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgApiToken
      tags:
        - Orgs API Tokens
  "/api/v1/orgs/{org_id}/aptemplates":
    get:
      description: Get List of Org AP Templates
      operationId: listOrgAptemplates
      responses:
        "200":
          $ref: "#/components/responses/AptemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAptemplates
      tags:
        - Orgs AP Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org AP Template
      operationId: createOrgAptemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  ap_matching:
                    enabled: true
                    rules:
                      - match_model: string
                        name: string
                        port_config:
                          property1:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                          property2:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                  created_time: 0
                  for_site: true
                  id: 497f6eca-6276-5022-bfeb-53cbbbba6f08
                  modified_time: 0
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  wifi:
                    cisco_enabled: true
                    disable_11k: false
                    disable_radios_when_power_constrained: true
                    enable_arp_spoof: true
                    enable_shared_radio_scanning: false
                    enabled: true
                    locate_connected: false
                    locate_unconnected: false
                    mesh_allow_dfs: false
                    mesh_enable_crm: true
                    mesh_enabled: true
                    proxy_arp: false
            schema:
              $ref: "#/components/schemas/aptemplate"
      responses:
        "200":
          $ref: "#/components/responses/Aptemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgAptemplate
      tags:
        - Orgs AP Templates
  "/api/v1/orgs/{org_id}/aptemplates/{aptemplate_id}":
    delete:
      description: Delete existing AP Template
      operationId: deleteOrgAptemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgAptemplate
      tags:
        - Orgs AP Templates
    get:
      description: Get AP Template
      operationId: getOrgAptemplate
      responses:
        "200":
          $ref: "#/components/responses/Aptemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgAptemplate
      tags:
        - Orgs AP Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/aptemplate_id"
    put:
      description: Update AP Template
      operationId: updateOrgAptemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  ap_matching:
                    enabled: true
                    rules:
                      - match_model: string
                        name: string
                        port_config:
                          property1:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                          property2:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                  created_time: 0
                  for_site: true
                  id: 497f6eca-6276-5023-bfeb-53cbbbba6f08
                  modified_time: 0
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  wifi:
                    cisco_enabled: true
                    disable_11k: false
                    disable_radios_when_power_constrained: true
                    enable_arp_spoof: true
                    enable_shared_radio_scanning: false
                    enabled: true
                    locate_connected: false
                    locate_unconnected: false
                    mesh_allow_dfs: false
                    mesh_enable_crm: true
                    mesh_enabled: true
                    proxy_arp: false
            schema:
              $ref: "#/components/schemas/aptemplate"
      responses:
        "200":
          $ref: "#/components/responses/Aptemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAptemplate
      tags:
        - Orgs AP Templates
  "/api/v1/orgs/{org_id}/assetfilters":
    get:
      description: |-
        Get List of Org BLE asset filters. 
        Each asset filter in the list operates independently. For a filter object to match an asset, all of the filter properties must match (logical ‘AND’ of each filter property). For example, the “Visitor Tags” filter below will match an asset when both the “ibeacon\_uuid” and “ibeacon_major” properties match the asset. All non-matching assets are ignored.
      operationId: listOrgAssetFilters
      responses:
        "200":
          $ref: "#/components/responses/AssetfiltersArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAssetFilters
      tags:
        - Orgs Asset Filters
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Create Asset Filter

        Creates a single BLE asset filter for the given site. Any subset of filter properties can be included in the filter. A matching asset must meet the conditions of all given filter properties (logical ‘AND’).
      operationId: createOrgAssetFilters
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  created_time: 0
                  disasbled: true
                  eddystone_uid_namespace: string
                  eddystone_url: string
                  for_site: true
                  ibeacon_major: 0
                  ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                  id: 430f6eca-6276-4993-bfeb-53cb5bba6f08
                  mfg_company_id: 0
                  modified_time: 0
                  name: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
            schema:
              $ref: "#/components/schemas/asset_filter"
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgAssetFilters
      tags:
        - Orgs Asset Filters
  "/api/v1/orgs/{org_id}/assetfilters/{assetfilter_id}":
    delete:
      description: Deletes an existing BLE asset filter for the given site.
      operationId: deleteOrgAssetFilter
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgAssetFilter
      tags:
        - Orgs Asset Filters
    get:
      description: Get Org Asset Filter Details
      operationId: getOrgAssetFilter
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgAssetFilter
      tags:
        - Orgs Asset Filters
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/assetfilter_id"
    put:
      description: Updates an existing BLE asset filter for the given site.
      operationId: updateOrgAssetFilters
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  disabled: true
                  eddystone_uid_namespace: string
                  eddystone_url: string
                  ibeacon_major: 0
                  ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab2
                  mfg_company_id: 0
                  name: string
            schema:
              $ref: "#/components/schemas/asset_filter"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAssetFilters
      tags:
        - Orgs Asset Filters
  "/api/v1/orgs/{org_id}/assets":
    get:
      description: Get List of Org Assets
      operationId: listOrgAssets
      responses:
        "200":
          $ref: "#/components/responses/AssetsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAssets
      tags:
        - Orgs Assets
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Asset
      operationId: createOrgAsset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgAsset
      tags:
        - Orgs Assets
  "/api/v1/orgs/{org_id}/assets/import":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Impert Org Assets. 

        It can be done via a CSV file or a JSON payload.

        #### CSV File Format
        ```csv
        name,mac
        "asset_name",5c5b53010101
        ``` 
      operationId: importOrgAssets
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - mac: a31eb04e1c38
                    name: Expensive Instrument
                  - mac: a31eb04e1c37
                    name: Cheap Instrument
            schema:
              description: ""
              items:
                properties:
                  mac:
                    minLength: 1
                    type: string
                  name:
                    minLength: 1
                    type: string
                required:
                  - name
                  - mac
                type: object
              minItems: 1
              type: array
              uniqueItems: true
              x-examples:
                example-1:
                  - mac: a31eb04e1c38
                    name: Expensive Instrument
                  - mac: a31eb04e1c37
                    name: Cheap Instrument
          multipart/form-data:
            schema:
              properties:
                file:
                  description: CSV file
                  format: binary
                  type: string
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importOrgAssets
      tags:
        - Orgs Assets
  "/api/v1/orgs/{org_id}/assets/{asset_id}":
    delete:
      description: Delete Org Asset
      operationId: deleteOrgAsset
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "201":
          description: Created
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgAsset
      tags:
        - Orgs Assets
    get:
      description: Get Org Asset Details
      operationId: getOrgAsset
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgAsset
      tags:
        - Orgs Assets
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/asset_id"
    put:
      description: Update Org Asset
      operationId: updateOrgAsset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAsset
      tags:
        - Orgs Assets
  "/api/v1/orgs/{org_id}/call/events/count":
    get:
      description: Count Org Call Events
      operationId: countOrgCallEvents
      parameters:
        - in: query
          name: distinct
          schema:
            enum:
              - type
              - app
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgCallEvents
      tags:
        - Orgs Calls
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/call/events/search":
    get:
      description: Search Org Call Events
      operationId: searchOrgCallEvents
      parameters:
        - description: Event Type. See [getCallEventsDefinitions](#tag/Constants/operation/getCallEventsDefinitions)
          in: query
          name: type
          schema:
            type: string
        - in: query
          name: ap
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: app
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/CallEventsArraySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgCallEvents
      tags:
        - Orgs Calls
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/cert":
    get:
      description: Get Org Certificates
      operationId: getOrgCertificates
      responses:
        "200":
          $ref: "#/components/responses/Certificate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgCertificates
      tags:
        - Orgs Cert
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/cert/regenerate":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Clear Org Certificates
      operationId: clearOrgCertificates
      responses:
        "200":
          $ref: "#/components/responses/Certificate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearOrgCertificates
      tags:
        - Orgs Cert
  "/api/v1/orgs/{org_id}/claim":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Claim Org licenses / activation codes
      operationId: claimOrgLicense
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  code: ZHT3K-H36DT-MG85D-M61AC
                  type: all
            schema:
              properties:
                code:
                  description: activation code
                  type: string
                type:
                  default: all
                  description: what to claim
                  enum:
                    - all
                    - license
                    - inventory
                  type: string
              required:
                - code
                - type
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/claimLicense"
        "400":
          description: invalid key (or already used)
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: claimOrgLicense
      tags:
        - Orgs Licenses
  "/api/v1/orgs/{org_id}/clients/count":
    get:
      description: Count Org Wireless Clients
      operationId: countOrgClientsWireless
      parameters:
        - in: query
          name: distinct
          schema:
            default: device
            enum:
              - mac
              - hostname
              - device
              - os
              - model
              - ap
              - vlan
              - ssid
              - ip
            type: string
        - description: partial / full MAC address
          in: query
          name: mac
          schema:
            type: string
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: device type, e.g. Mac, Nvidia, iPhone
          in: query
          name: device
          schema:
            type: string
        - description: os, e.g. Sierra, Yosemite, Windows 10
          in: query
          name: os
          schema:
            type: string
        - description: model, e.g. “MBP 15 late 2013”, 6, 6s, “8+ GSM”
          in: query
          name: model
          schema:
            type: string
        - description: AP mac where the client has connected to
          in: query
          name: ap
          schema:
            type: string
        - description: vlan
          in: query
          name: vlan
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgClientsWireless
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/clients/events/search":
    get:
      description: Get Org Clients Events
      operationId: searchOrgClientsEvents
      parameters:
        - description: event type, e.g. MARVIS_EVENT_CLIENT_FBT_FAILURE
          in: query
          name: type
          schema:
            type: string
        - description: for assoc/disassoc events
          in: query
          name: reason_code
          schema:
            type: integer
        - description: SSID Name
          in: query
          name: ssid
          schema:
            type: string
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 802.11 standard
          in: query
          name: proto
          schema:
            enum:
              - b
              - g
              - n
              - ac
              - ax
              - a
            type: string
        - description: 24 / 5
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/EventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgClientsEvents
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/clients/search":
    get:
      description: Search Org Wireless Clients
      operationId: searchOrgClientsWireless
      parameters:
        - description: Site ID
          in: query
          name: site_id
          schema:
            type: string
        - description: partial / full MAC address
          in: query
          name: mac
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: device type, e.g. Mac, Nvidia, iPhone
          in: query
          name: device
          schema:
            type: string
        - description: os, e.g. Sierra, Yosemite, Windows 10
          in: query
          name: os
          schema:
            type: string
        - description: model, e.g. “MBP 15 late 2013”, 6, 6s, “8+ GSM”
          in: query
          name: model
          schema:
            type: string
        - description: AP mac where the client has connected to
          in: query
          name: ap
          schema:
            type: string
        - $ref: "#/components/parameters/psk_id_query"
        - description: PSK Name
          in: query
          name: psk_name
          schema:
            type: string
        - description: vlan
          in: query
          name: vlan
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - description: partial / full MAC address, hostname
          in: query
          name: text
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ClientsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgClientsWireless
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/clients/sessions/count":
    get:
      description: Count Org Wireless Clients Sessions
      operationId: countOrgWirelessClientsSessions
      parameters:
        - in: query
          name: distinct
          required: true
          schema:
            default: device
            enum:
              - ssid
              - ap
              - ip
              - vlan
              - hostname
              - os
              - model
              - device
            type: string
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 5 / 24
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: E.g. “Mac”, “iPhone”, “Apple watch”
          in: query
          name: client_family
          schema:
            type: string
        - description: E.g. “Apple”
          in: query
          name: client_manufacture
          schema:
            type: string
        - description: E.g. “8+”, “XS”
          in: query
          name: client_model
          schema:
            type: string
        - description: E.g. “Mojave”, “Windows 10”, “Linux”
          in: query
          name: client_os
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgWirelessClientsSessions
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/clients/sessions/search":
    get:
      description: Search Org Wireless Clients Sessions
      operationId: searchOrgClientWirelessSessions
      parameters:
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 5 / 24
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: E.g. “Mac”, “iPhone”, “Apple watch”
          in: query
          name: client_family
          schema:
            type: string
        - description: E.g. “Apple”
          in: query
          name: client_manufacture
          schema:
            type: string
        - description: E.g. “8+”, “XS”
          in: query
          name: client_model
          schema:
            type: string
        - description: Username
          in: query
          name: client_username
          schema:
            type: string
        - description: E.g. “Mojave”, “Windows 10”, “Linux”
          in: query
          name: client_os
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/psk_id_query"
        - description: PSK Name
          in: query
          name: psk_name
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/WirelessClientSessionsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgClientWirelessSessions
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/clone":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create an Org by cloning from another one. Org Settings, Templates, Wxlan Tags, Wxlan Tunnels, Wxlan Rules, Org Wlans will be copied. Sites and Site Groups will not be copied, and therefore, the copied template will not be applied to any site/sitegroups.
      operationId: cloneOrg
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: New Org
            schema:
              properties:
                name:
                  type: string
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Org"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: cloneOrg
      tags:
        - Orgs
  "/api/v1/orgs/{org_id}/crl":
    get:
      description: Get Org CRL File
      operationId: getOrgCrlFile
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgCrlFile
      tags:
        - Orgs CRL
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/crl/truncate":
    parameters:
      - in: path
        name: org_id
        required: true
        schema:
          type: string
    post:
      description: By default, all certs used by recently unclaimed devices within 9 month will be included in CRL. If the list grows too big, you can truncate it
      operationId: truncateOrgCrlFile
      requestBody:
        content:
          application/json:
            schema:
              properties:
                days:
                  default: 30
                  type: integer
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: truncateOrgCrlFile
      tags:
        - Orgs Cert
  "/api/v1/orgs/{org_id}/deviceprofiles":
    get:
      description: Get List of Org Device Profiles
      operationId: listOrgDeviceProfiles
      parameters:
        - in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
      responses:
        "200":
          $ref: "#/components/responses/DeviceprofilesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgDeviceProfiles
      tags:
        - Orgs Device Profiles
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Device Profile
      operationId: createOrgDeviceProfiles
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  aeroscout:
                    enabled: true
                    host: string
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: default
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: true
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    power: 1
                    power_mode: string
                  created_time: 0
                  disable_eth1: true
                  disable_module: true
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: 192.168.0.1
                    gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    ip: 192.168.0.1
                    ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    mtu: 0
                    netmask: 192.168.0.1
                    netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    type: static
                    type6: static
                    vlan_id: 1
                  mesh:
                    enabled: true
                    group: 0
                    role: base
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  poe_passthrough: true
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    scanning_enabled: true
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  switch_config:
                    enabled: true
                    eth0:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth1:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth2:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth3:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    module:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    wds:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                  usb_config:
                    cacert: string
                    channel: 0
                    enabled: true
                    host: string
                    port: 0
                    type: imagotag
                    verify_cert: true
            schema:
              $ref: "#/components/schemas/deviceprofile"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Deviceprofile"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgDeviceProfiles
      tags:
        - Orgs Device Profiles
  "/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}":
    delete:
      description: Delete Org Device Profile
      operationId: deleteOrgDeviceProfile
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgDeviceProfile
      tags:
        - Orgs Device Profiles
    get:
      description: Get Org device Profile Details
      operationId: getOrgDeviceProfile
      responses:
        "200":
          $ref: "#/components/responses/Deviceprofile"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgDeviceProfile
      tags:
        - Orgs Device Profiles
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/deviceprofile_id"
    put:
      description: Update Org Device Profile
      operationId: updateOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  aeroscout:
                    enabled: true
                    host: string
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: default
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: true
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    power: 1
                    power_mode: string
                  created_time: 0
                  disable_eth1: true
                  disable_module: true
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: 192.168.0.1
                    gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    ip: 192.168.0.1
                    ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    mtu: 0
                    netmask: 192.168.0.1
                    netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    type: static
                    type6: static
                    vlan_id: 1
                  mesh:
                    enabled: true
                    group: 0
                    role: base
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  poe_passthrough: true
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    scanning_enabled: true
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  switch_config:
                    enabled: true
                    eth0:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth1:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth2:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth3:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    module:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    wds:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                  usb_config:
                    cacert: string
                    channel: 0
                    enabled: true
                    host: string
                    port: 0
                    type: imagotag
                    verify_cert: true
            schema:
              $ref: "#/components/schemas/deviceprofile"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Deviceprofile"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgDeviceProfiles
      tags:
        - Orgs Device Profiles
  "/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/assign":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/deviceprofile_id"
    post:
      description: Assign Org Device Profile to Devices
      operationId: assignOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 5c5b350e0001
                    - 5c5b350e0003
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/assignSuccess"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: assignOrgDeviceProfile
      tags:
        - Orgs Device Profiles
  "/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/unassign":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/deviceprofile_id"
    post:
      description: Unassign Org Device Profile from Devices
      operationId: unassignOrgDeviceProfiles
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 5c5b350e0001
                    - 5c5b350e0003
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/assignSuccess"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unassignOrgDeviceProfiles
      tags:
        - Orgs Device Profiles
  "/api/v1/orgs/{org_id}/devices":
    get:
      description: Get List of Org Devices
      operationId: listOrgDevices
      responses:
        "200":
          $ref: "#/components/responses/OrgDevices"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgDevices
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/count":
    get:
      description: Count Org Devices
      operationId: countOrgDevices
      parameters:
        - example: model
          in: query
          name: distinct
          required: true
          schema:
            default: model
            enum:
              - hostname
              - site_id
              - model
              - mac
              - version
              - ip
              - mxtunnel_status
              - mxedge_id
              - lldp_system_name
              - lldp_system_desc
              - lldp_port_id
              - lldp_mgmt_addr
            type: string
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: site id
          in: query
          name: site_id
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: AP mac
          in: query
          name: mac
          schema:
            type: string
        - description: version
          in: query
          name: version
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - description: MxTunnel status, up / down
          in: query
          name: mxtunnel_status
          schema:
            enum:
              - up
              - down
            type: string
        - description: Mist Edge id, if AP is connecting to a Mist Edge
          in: query
          name: mxedge_id
          schema:
            type: string
        - description: LLDP system name
          in: query
          name: lldp_system_name
          schema:
            type: string
        - description: LLDP system description
          in: query
          name: lldp_system_desc
          schema:
            type: string
        - description: LLDP port id
          in: query
          name: lldp_port_id
          schema:
            type: string
        - description: LLDP management ip address
          in: query
          name: lldp_mgmt_addr
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgDevices
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/events/count":
    get:
      description: Count Org Devices Events
      operationId: countOrgDevicesEvents
      parameters:
        - in: query
          name: distinct
          required: true
          schema:
            default: model
            enum:
              - org_id
              - site_id
              - ap
              - apfw
              - model
              - text
              - timestamp
              - type
            type: string
        - description: site id
          in: query
          name: site_id
          schema:
            type: string
        - description: AP mac
          in: query
          name: ap
          schema:
            type: string
        - description: AP Firmware
          in: query
          name: apfw
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: event message
          in: query
          name: text
          schema:
            type: string
        - description: event time
          in: query
          name: timestamp
          schema:
            type: string
        - description: Events Type
          in: query
          name: type
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgDevicesEvents
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/events/search":
    get:
      description: Search Org Devices Events
      operationId: searchOrgDevicesEvents
      parameters:
        - description: device mac
          in: query
          name: mac
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: event message
          in: query
          name: text
          schema:
            type: string
        - description: event time
          in: query
          name: timestamp
          schema:
            type: string
        - description: see [Event Types Definition](/#tag/Constants/operation/getDeviceEventsDefinitions)
          in: query
          name: type
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/DevicesEventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgDevicesEvents
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/last_config/count":
    get:
      description: Counts the number of entries in device config history for distinct field with given filters
      operationId: countOrgDeviceLastConfigs
      parameters:
        - in: query
          name: device_type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - in: query
          name: distinct
          schema:
            enum:
              - mac
              - version
              - name
              - site_id
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgDeviceLastConfigs
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/last_config/search":
    get:
      description: Search Device Last Configs
      operationId: searchOrgDeviceLastConfigs
      parameters:
        - in: query
          name: device_type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - in: query
          name: version
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ConfigsHistorySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgDeviceLastConfigs
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/radio_macs":
    get:
      description: Get List of Org AP Device Mac and Radio MACs
      operationId: listOrgApsMacs
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - mac: 5c5b35000001
                      radio_macs:
                        - 5c5b35000040
                        - 5c5b35000050
                        - 5c5b35000060
                    - mac: 5c5b45000001
                      radio_macs:
                        - 5c5b45000040
                        - 5c5b45000050
                        - 5c5b45000060
              schema:
                description: ""
                items:
                  properties:
                    mac:
                      minLength: 1
                      type: string
                    radio_macs:
                      items:
                        properties: {}
                      type: array
                  required:
                    - mac
                    - radio_macs
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - mac: 5c5b35000001
                      radio_macs:
                        - 5c5b35000040
                        - 5c5b35000050
                        - 5c5b35000060
                    - mac: 5c5b45000001
                      radio_macs:
                        - 5c5b45000040
                        - 5c5b45000050
                        - 5c5b45000060
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgApsMacs
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/search":
    get:
      description: Search Org Devices
      operationId: searchOrgDevices
      parameters:
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: site id
          in: query
          name: site_id
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: AP mac
          in: query
          name: mac
          schema:
            type: string
        - description: version
          in: query
          name: version
          schema:
            type: string
        - description: power_constrained
          in: query
          name: power_constrained
          schema:
            type: boolean
        - $ref: "#/components/parameters/ip"
        - description: MxTunnel status, up / down
          in: query
          name: mxtunnel_status
          schema:
            enum:
              - up
              - down
            type: string
        - description: Mist Edge id, if AP is connecting to a Mist Edge
          in: query
          name: mxedge_id
          schema:
            type: string
        - description: LLDP system name
          in: query
          name: lldp_system_name
          schema:
            type: string
        - description: LLDP system description
          in: query
          name: lldp_system_desc
          schema:
            type: string
        - description: LLDP port id
          in: query
          name: lldp_port_id
          schema:
            type: string
        - description: LLDP management ip address
          in: query
          name: lldp_mgmt_addr
          schema:
            type: string
        - description: Bandwith of band_24
          in: query
          name: band_24_bandwith
          schema:
            type: integer
        - description: Bandwith of band_5
          in: query
          name: band_5_bandwith
          schema:
            type: integer
        - description: Bandwith of band_6
          in: query
          name: band_6_bandwith
          schema:
            type: integer
        - description: Channel of band_24
          in: query
          name: band_24_channel
          schema:
            type: integer
        - description: Channel of band_5
          in: query
          name: band_5_channel
          schema:
            type: integer
        - description: Channel of band_6
          in: query
          name: band_6_channel
          schema:
            type: integer
        - description: Port speed of eth0
          in: query
          name: eth0_port_speed
          schema:
            type: integer
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/DevicesSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgDevices
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/devices/upgrade":
    get:
      description: Get List of Org multi devces upgrades
      operationId: listOrgMultiSitesDevicesUpgrades
      responses:
        "200":
          content:
            application/json:
              schema:
                description: ""
                items:
                  properties:
                    id:
                      description: unique id for the org upgrade
                      format: uuid
                      minLength: 1
                      type: string
                    upgrades:
                      description: site upgrades part of this upgrade
                      items:
                        properties:
                          site_id:
                            description: id of the site upgrade
                            format: uuid
                            minLength: 1
                            type: string
                          upgrade_id:
                            description: site the upgrade belongs to
                            format: uuid
                            minLength: 1
                            type: string
                        required:
                          - site_id
                          - upgrade_id
                        type: object
                      minItems: 1
                      type: array
                      uniqueItems: true
                  required:
                    - id
                    - upgrades
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - id: c4a69d92-46b9-44a8-ae90-7de44be58a4b
                      upgrades:
                        - site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                          upgrade_id: f9d03e9a-28ae-4b09-8cef-f682801b46c3
                        - site_id: 495363c9-be25-4fde-8bef-65b28a1a6eaa
                          upgrade_id: 6de92826-a348-4bae-9005-2d1d8041d327
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMultiSitesDevicesUpgrades
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Upgrade Multiple Sites
      operationId: upgradeOrgMultiSitesDevices
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/device_upgrade"
      responses:
        "200":
          $ref: "#/components/responses/Id"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeOrgMultiSitesDevices
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/devices/upgrade/{upgrade_id}":
    get:
      description: Get Multi Site Upgrade
      operationId: getOrgMultiSitesUpgrade
      responses:
        "200":
          $ref: "#/components/responses/OrgDeviceUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMultiSitesUpgrade
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
      - in: path
        name: upgrade_id
        required: true
        schema:
          format: uuid
          type: string
  "/api/v1/orgs/{org_id}/devices/{device_id}/clear_tunnels":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Remove Tunnel for a gateway
      operationId: removeOrgGatewaysTunnel
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  name: tunnel-name
                  provider: zscaler-ipsec
            schema:
              properties:
                name:
                  example: tunnel-name
                  type: string
                provider:
                  enum:
                    - zscaler-ipsec
                    - zscaler-gre
                  type: string
              type: object
              x-examples:
                Example 1:
                  name: tunnel-name
                  provider: zscaler-ipsec
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: removeOrgGatewaysTunnel
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/devices/{device_id}/provision_tunnels":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |
        Create credential for gateways
      operationId: createOrgGatewaysCredentials
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  latlng:
                    lat: 37.295833
                    lng: -122.032946
                  name: tunnel-name
                  primary:
                    num_hosts: 1
                    wan_names:
                      - wan0
                  provider: zscaler-ipsec
                  region: auto
                  secondary: null
                  vars_only: false
            schema:
              properties:
                latlng:
                  description: by default, we'll use the Site lat/lng, but overwrite can be given
                  properties:
                    lat:
                      example: 37.295833
                      type: number
                    lng:
                      example: -122.032946
                      type: number
                  type: object
                name:
                  example: tunnel-name
                  type: string
                primary:
                  properties:
                    num_hosts:
                      example: 1
                      type: integer
                    wan_names:
                      description: optional, only needed if `vars_only`==`false`
                      items:
                        example: wan0
                        type: string
                      type: array
                  type: object
                provider:
                  enum:
                    - zscaler-ipsec
                    - zscaler-gre
                  type: string
                region:
                  default: auto
                  enum:
                    - auto
                    - EMEA
                    - Americas
                    - APAC
                  type: string
                secondary:
                  nullable: true
                  properties:
                    num_hosts:
                      example: 1
                      type: integer
                    wan_names:
                      description: optional, only needed if `vars_only`==`false`
                      items:
                        example: wan0
                        type: string
                      type: array
                  type: object
                vars_only:
                  default: false
                  description: if false, we'd generate the config inline
                  type: boolean
              type: object
              x-examples:
                Example 1:
                  latlng:
                    lat: 37.295833
                    lng: -122.032946
                  name: tunnel-name
                  primary:
                    num_hosts: 2
                    wan_names:
                      - wan0
                      - wan1
                  provider: zscaler-ipsec
                  region: auto
                  secondary: null
                  vars_only: true
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    vars:
                      ZSCALER_IPSEC_LOCAL_ID: local_id
                      "ZSCALER_IPSEC_PRIMARY_HOST_1_{TUNNEL-NAME}": host1
                      "ZSCALER_IPSEC_PRIMARY_HOST_2_{TUNNEL-NAME}": host2
                      ZSCALER_IPSEC_PSK: psk
              schema:
                properties:
                  vars:
                    properties:
                      ZSCALER_IPSEC_LOCAL_ID:
                        type: string
                      "ZSCALER_IPSEC_PRIMARY_HOST_1_{TUNNEL-NAME}":
                        type: string
                      "ZSCALER_IPSEC_PRIMARY_HOST_2_{TUNNEL-NAME}":
                        type: string
                      ZSCALER_IPSEC_PSK:
                        type: string
                    type: object
                type: object
                x-examples:
                  Example 1:
                    vars:
                      ZSCALER_IPSEC_LOCAL_ID: local_id
                      "ZSCALER_IPSEC_PRIMARY_HOST_1_{TUNNEL-NAME}": host1
                      "ZSCALER_IPSEC_PRIMARY_HOST_2_{TUNNEL-NAME}": host2
                      ZSCALER_IPSEC_PSK: psk
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgGatewaysCredentials
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/evpn_topologies":
    get:
      description: Get List of the existing Org EVPN topologies
      operationId: listOrgEvpnTopologies
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgEvpnTopologies
      tags:
        - Orgs EVPN Topologies
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        While all the `evpn_id` / `downlink_ips` can be specifidd by hand, the easiest way is to call the `build_vpn_topology` API, allowing you to examine the diff, and update it yourself. You can also simply call it with `overwrite=true` which will apply the updates for you.

        **Notes:**
        1. You can use `core` / `distribution` / `access` to create a CLOS topology
        2. You can also use `core` / `distribution` to form a 2-tier EVPN topology where ESI-Lag is configured distribution to connect to access switches
        3. In a small/medium campus, `collapsed-core` can be used where core switches are the inter-connected to do EVPN
        4. The API uses a few pre-defined parameters and best-practices to generate the configs. It can be customized by using `evpn_options` in Site Setting / Network Template. (e.g. a different subnet for the underlay)

        #### Collapsed Core
        In a small-medium campus, EVPN can also be enabled only at the core switches (up to 4) by assigning all participating switches with `collapsed-core role`. When there are more than 2 switches, a ring-like topology will be formed.

        #### ESI-Lag
        If the access switchess does not have EVPN support, you can take advantage of EVPN by setting up ESI-Lag on distribution switches

        #### Leaf / Access / Collapsed-Core
        For leaf nodes in a EVPN topology, you’d have to configure the IPs for networks that would participate in EVPN. Optionally, VRFs to isolate traffic from one tenant verus another
      operationId: createOrgEvpnTopology
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: CC
                  overwrite: true
                  pod_names:
                    "1": default
                    "2": default
                  switches:
                    - mac: 5c5b35000003
                      role: collapsed-core
                    - mac: 5c5b35000004
                      role: collapsed-core
            schema:
              $ref: "#/components/schemas/junos_evpn_topology"
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgEvpnTopology
      tags:
        - Orgs EVPN Topologies
  "/api/v1/orgs/{org_id}/evpn_topologies/{evpn_topology_id}":
    delete:
      description: Delete the Org EVPN Topology
      operationId: deleteOrgEvpnTopology
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgEvpnTopology
      tags:
        - Orgs EVPN Topologies
    get:
      description: Get One EVPN Topology Detail
      operationId: getOrgEvpnTolopogy
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgEvpnTolopogy
      tags:
        - Orgs EVPN Topologies
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/evpn_topology_id"
    put:
      description: Update the EVPN Topolgy
      operationId: updateOrgEvpnTopology
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  overwrite: false
                  switches:
                    - mac: 5c5b35000003
                      role: collapsed-core
                    - mac: 5c5b35000004
                      role: none
            schema:
              $ref: "#/components/schemas/junos_evpn_topology"
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgEvpnTopology
      tags:
        - Orgs EVPN Topologies
  "/api/v1/orgs/{org_id}/gatewaytemplates":
    get:
      description: Get List of Org Gateway Templates
      operationId: listOrgGatewayTemplates
      responses:
        "200":
          $ref: "#/components/responses/GatewaytemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgGatewayTemplates
      tags:
        - Orgs Gateway Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Gateway Template
      operationId: createOrgGatewayTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  additional_config_cmds:
                    - string
                  bgp_config:
                    property1:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: wan
                      wan_name: string
                    property2:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: lan
                      wan_name: string
                  created_time: 0
                  dhcpd_config:
                    property1:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                    property2:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                  extra_routes:
                    property1:
                      via: 192.168.0.1
                    property2:
                      via: 192.168.0.1
                  gateway_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                  id: 497f6eca-6276-4994-bfeb-53cbbbba6f08
                  ip_configs:
                    property1:
                      ip: 192.168.0.1
                      netmask: /24
                    property2:
                      ip: 192.168.0.1
                      netmask: /24
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-4995-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                    property2:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-5024-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                  oob_ip_config:
                    additionalProperties:
                      ip: string
                      netmask: string
                      network: string
                      type: dynamic
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ip: string
                    netmask: string
                    network: string
                    type: dynamic
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  path_preferences:
                    property1:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                    property2:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                  port_config:
                    property1:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                    property2:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                  routing_policies:
                    property1:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                    property2:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                  service_policies:
                    - action: allow
                      ewf:
                        - alert_only: true
                          block_message: Access to this URL Category has been blocked
                          enabled: false
                          profille: strict
                      idp:
                        alert_only: string
                        enabled: false
                        profile: strict
                      local_routing: false
                      name: string
                      path_preferences: string
                      servicepolicy_id: a4b81837-7a2f-46c1-bf27-dc8af6edd0a0
                      services:
                        - string
                      tenants:
                        - string
                  tunnel_configs:
                    property1:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                    property2:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                  type: standalone
            schema:
              $ref: "#/components/schemas/gatewaytemplate"
        description: Gateway Template
      responses:
        "200":
          $ref: "#/components/responses/Gatewaytemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgGatewayTemplate
      tags:
        - Orgs Gateway Templates
  "/api/v1/orgs/{org_id}/gatewaytemplates/{gatewaytemplate_id}":
    delete:
      description: Delete Organization Gateway Template
      operationId: deleteOrgGatewayTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgGatewayTemplate
      tags:
        - Orgs Gateway Templates
    get:
      description: Get Organization Gateway Template details
      operationId: getOrgGatewayTemplate
      responses:
        "200":
          $ref: "#/components/responses/Gatewaytemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgGatewayTemplate
      tags:
        - Orgs Gateway Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/gatewaytemplate_id"
    put:
      description: Update Organization Gateway Template
      operationId: updateOrgGatewayTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  additional_config_cmds:
                    - string
                  bgp_config:
                    property1:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: lan
                      wan_name: string
                    property2:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: wan
                      wan_name: string
                  created_time: 0
                  dhcpd_config:
                    property1:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                    property2:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                  extra_routes:
                    property1:
                      via: 192.168.0.1
                    property2:
                      via: 192.168.0.1
                  gateway_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                  id: 497f6eca-6276-5025-bfeb-53cbbbba6f08
                  ip_configs:
                    property1:
                      ip: 192.168.0.1
                      netmask: /24
                    property2:
                      ip: 192.168.0.1
                      netmask: /24
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-5026-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                    property2:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-5027-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                  oob_ip_config:
                    additionalProperties:
                      ip: string
                      netmask: string
                      network: string
                      type: dynamic
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ip: string
                    netmask: string
                    network: string
                    type: dynamic
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  path_preferences:
                    property1:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                    property2:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                  port_config:
                    property1:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                    property2:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                  routing_policies:
                    property1:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                    property2:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                  service_policies:
                    - action: allow
                      ewf:
                        - alert_only: true
                          block_message: Access to this URL Category has been blocked
                          enabled: false
                          profille: strict
                      idp:
                        alert_only: string
                        enabled: false
                        profile: strict
                      local_routing: false
                      name: string
                      path_preferences: string
                      servicepolicy_id: a4b81837-7a2f-46c1-bf27-dc8af6edd0a0
                      services:
                        - string
                      tenants:
                        - string
                  tunnel_configs:
                    property1:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                    property2:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                  type: standalone
            schema:
              $ref: "#/components/schemas/gatewaytemplate"
        description: Gateway Template
      responses:
        "200":
          $ref: "#/components/responses/Gatewaytemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgGatewayTemplate
      tags:
        - Orgs Gateway Templates
  "/api/v1/orgs/{org_id}/guests":
    get:
      description: Get List of Org Guest Authorizations
      operationId: listOrgGuestAuthorizations
      responses:
        "200":
          $ref: "#/components/responses/GuestsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgGuestAuthorizations
      tags:
        - Orgs Guests
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/guests/count":
    get:
      description: Count Org Authorized Guest
      operationId: countOrgGuestAuthorizations
      parameters:
        - example: auth_method
          in: query
          name: distinct
          schema:
            default: auth_method
            enum:
              - auth_method
              - ssid
              - company
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgGuestAuthorizations
      tags:
        - Orgs Guests
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/guests/search":
    get:
      description: Search Authorized Guest
      operationId: searchOrgGuestAuthorization
      parameters:
        - example: 00000000-0000-0000-0000-000000000000
          in: query
          name: wlan_id
          schema:
            type: string
        - in: query
          name: auth_method
          schema:
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/GuestsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgGuestAuthorization
      tags:
        - Orgs Guests
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/guests/{guest_mac}":
    delete:
      description: Delete Guest Authorization
      operationId: deleteOrgGuestAuthorization
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgGuestAuthorization
      tags:
        - Orgs Guests
    get:
      description: Get Guest Authorization
      operationId: getOrgGuestAuthorization
      responses:
        "200":
          $ref: "#/components/responses/Guest"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgGuestAuthorization
      tags:
        - Orgs Guests
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/guest_mac"
    put:
      description: Update Guest Authorization
      operationId: updateOrgGuestAuthorization
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  authorized: true
                  authorized_expiring_time: 0
                  authorized_time: 0
                  company: string
                  email: user@example.com
                  field1: string
                  field2: string
                  field3: string
                  field4: string
                  mac: string
                  minutes: 0
                  name: string
            schema:
              $ref: "#/components/schemas/guest"
      responses:
        "200":
          $ref: "#/components/responses/Guest"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgGuestAuthorization
      tags:
        - Orgs Guests
  "/api/v1/orgs/{org_id}/insights/sites-sle":
    get:
      description: Get Org Sites SLE
      operationId: getOrgSitesSle
      parameters:
        - in: query
          name: sle
          schema:
            enum:
              - wan
              - wired
              - wifi
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/OrgSiteSle"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSitesSle
      tags:
        - Orgs SLEs
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/insights/{metric}":
    get:
      description: Get Org SLEs (all/worst sites, Mx Edges, ...)
      operationId: getOrgSle
      parameters:
        - description: see [/api/v1/const/insight_metrics](/#tag/Constants/operation/getSiteAvailableInsightMetrics) for more details
          in: query
          name: sle
          schema:
            type: string
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
      responses:
        "200":
          content:
            application/json:
              examples:
                worst-sites-by-sle:
                  value:
                    end: 1643706000
                    interval: 3600
                    limit: 100
                    results:
                      - ap-availability: 0.9919400860511628
                        ap-health: 0.967607512909879
                        capacity: 0.7484652273070254
                        coverage: 0.91217567374857
                        num_aps: 13
                        num_clients: 12
                        roaming: 0.991735537682683
                        roaming-exp: 0.991735537682683
                        site_id: 978c48e6-6ef6-11e6-8bbf-02e208b2d34f
                        successful-connect: 0.46052632135780236
                        throughput: 0.6775702123846302
                        time-to-connect: 0.9349112447196916
                      - ap-availability: 0.9990384613092129
                        ap-health: 0.48201754375507955
                        capacity: 0.9702673450306101
                        coverage: 0.8335392334930375
                        num_aps: 1
                        num_clients: 6
                        roaming: 1
                        roaming-exp: 1
                        site_id: 49ff76e0-a283-4e7d-b38d-041f1e9aff3c
                        successful-connect: 1
                        throughput: 0
                        time-to-connect: 1
                      - ap-availability: 1
                        ap-health: 0.982456140612301
                        capacity: 1
                        coverage: 0.9276041182442488
                        num_aps: 2
                        num_clients: 3
                        roaming: 1
                        roaming-exp: 1
                        site_id: 9b9b48f1-15a4-459e-86cc-9cbec9005983
                        successful-connect: 1
                        throughput: 1
                        time-to-connect: 0.8125
                      - ap-availability: 0.9981132070973234
                        ap-health: 0.9991228068084047
                        capacity: 1
                        coverage: 1
                        num_aps: 1
                        num_clients: 0
                        roaming: 1
                        roaming-exp: 1
                        site_id: eb0e1671-7a6b-472b-94c3-c187dafe5274
                        successful-connect: 1
                        throughput: 0
                        time-to-connect: 0.5
                    start: 1643670000
              schema:
                description: ""
                properties:
                  end:
                    type: number
                  interval:
                    type: number
                  limit:
                    type: number
                  results:
                    items:
                      additionalProperties: {}
                      type: object
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                required:
                  - start
                  - end
                  - interval
                  - limit
                  - results
                type: object
                x-examples:
                  example-1:
                    end: 1643706000
                    interval: 3600
                    limit: 100
                    results:
                      - {}
                    start: 1643670000
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSle
      tags:
        - Orgs SLEs
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/metric"
  "/api/v1/orgs/{org_id}/inventory":
    get:
      description: |-
        Get Org Inventory

        ### VC (Virtual-Chassis) Management
        Ideally VC should be managed as a single device - where - one managed entity where config / monitoring is anchored against (with a stable identify MAC) - all members appears in the inventory

        In our implementation, we strive to achieve that without manual user configurations by 
        1. during claim or adoption a VC, we require FPC0 to exist and will use its MAC as identify for the entire chassis
        2. other VC members will be automatically populated when they’re all present

        The perceivable result is 
        1. from `/sites/:site_id/stats/devices/:fpc0_mac` API, you’d see the VC where module_stat contains the VC members 
        2. from `/orgs/:org_id/inventory?vc=true` API, you’d see all VC members with vc_mac pointing to the FPC0
      operationId: getOrgInventory
      parameters:
        - description: device serial
          in: query
          name: serial
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - in: query
          name: type
          schema:
            enum:
              - ap
              - switch
              - gateway
            type: string
        - description: MAC address
          in: query
          name: mac
          schema:
            type: string
        - description: site id if assigned, null if not assigned
          in: query
          name: site_id
          schema:
            type: string
        - in: query
          name: vc_mac
          schema:
            type: string
        - in: query
          name: vc
          schema:
            type: string
        - in: query
          name: unassigned
          schema:
            type: boolean
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
      responses:
        "200":
          $ref: "#/components/responses/OrgInventory"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgInventory
      tags:
        - Orgs Inventory
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Add Device to Org Inventory
      operationId: addOrgInventory
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - 6JG8E-PTFV2-A9Z2N
                  - DVH4V-SNMSZ-PDXBR
            schema:
              description: List of device Claim Codes
              items:
                example: 6JG8E-PTFV2-A9Z2N
                type: string
              minItems: 1
              type: array
              uniqueItems: true
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OrgInventoryAdd"
        "400":
          content:
            application/json:
              examples:
                example-1:
                  value: {}
              schema:
                properties: {}
                type: object
          description: if none of the entries are valid
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: addOrgInventory
      tags:
        - Orgs Inventory
    put:
      description: Update Org Inventory
      operationId: updateOrgInventoryAssignment
      requestBody:
        content:
          application/json:
            examples:
              assign:
                value:
                  disable_auto_config: false
                  macs:
                    - 5c5b350e0001
                  managed: false
                  no_reassign: false
                  op: assign
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              delete:
                value:
                  macs:
                    - 5c5b350e0001
                  op: delete
                  serials:
                    - FXLH2015150025
                    - FXLH2015150026
            schema:
              properties:
                disable_auto_config:
                  default: false
                  description: if `op`==`assign`, a **cloud-ready** switch/gateway will be managed/configured by Mist by default, this disabled the behavior
                  type: boolean
                macs:
                  description: if `op`==`assign`, `op`==`unassign`,  `op`==`manage`or `op`==`unmanage` , list of MAC, e.g. ["5c5b350e0001"]
                  items:
                    type: string
                  type: array
                managed:
                  default: false
                  description: if `op`==`assign`, an **adopted** switch/gateway will not be managed/configured by Mist by default, this enables the behavior
                  type: boolean
                no_reassign:
                  description: if `op`==`assign`, if true, treat site assignment against an already assigned AP as error
                  type: boolean
                op:
                  description: |
                    * if `op`== `manage`: Upgrade to mist-managed
                    * if `op`== `unmanage`: Downgrade to basic monitoring
                    * if `op`== `assign`: Assign inventory to a site
                    * if `op`== `unassign`: Unassign inventory to a site
                    * if `op`== `delete`: Delete multiple inventory from org
                  enum:
                    - assign
                    - unassign
                    - delete
                    - manage
                    - unmanage
                  type: string
                serials:
                  description: if `op`==`delete`, list of serial numbers, e.g. ["FXLH2015150025"]
                  items:
                    type: string
                  type: array
                site_id:
                  description: if `op`==`assign`, target site id
                  format: uuid
                  type: string
              required:
                - op
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OrgInventoryChanges"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgInventoryAssignment
      tags:
        - Orgs Inventory
  "/api/v1/orgs/{org_id}/inventory/reevaluate_auto_assignment":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Reevaluate Auto Assignment
      operationId: reevaluateOrgAutoAssignment
      requestBody:
        content:
          application/json:
            schema:
              properties: {}
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: reevaluateOrgAutoAssignment
      tags:
        - Orgs Inventory
  "/api/v1/orgs/{org_id}/inventory/replace":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        It’s a common request we get from the customers. When a AP HW has problem and need a replacement, they would want to copy the existing attributes (Device Config) of this old AP to the new one. It can be done by providing the MAC of a device that’s currently in the inventory but not assigned. The Device replaced will become unassigned.

        **Note:** For Gateway devices only like-for-like replacements (can only replace a SRX320 with a SRX320 and not some otehr model) are allowed.
      operationId: replaceOrgDevices
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  discard: []
                  inventory_mac: 5c5b35000301
                  mac: 5c5b35000101
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              properties:
                discard:
                  description: attributes that you don’t want to copy
                  items:
                    type: string
                  type: array
                inventory_mac:
                  description: mac of the inventory that will be replacing the old one. It has to be claimed and unassigned.
                  type: string
                mac:
                  description: device mac
                  type: string
                site_id:
                  description: the site_id of the device to be replaced
                  format: uuid
                  type: string
              required:
                - inventory_mac
                - mac
                - site_id
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OrgInventoryChanges"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: replaceOrgDevices
      tags:
        - Orgs Inventory
  "/api/v1/orgs/{org_id}/invites":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: If the request is successful, an email will also be sent to the user with a link to ```https://manage.mist.com/verify/invite?token=:token&expire=1459632743&org=OrgName```
      operationId: inviteOrgAdmin
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: user@example.com
                  first_name: string
                  last_name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: inviteOrgAdmin
      tags:
        - Orgs Invites
  "/api/v1/orgs/{org_id}/invites/{invite_id}":
    delete:
      description: Delete Admin Invite
      operationId: uninviteOrgAdmin
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uninviteOrgAdmin
      tags:
        - Orgs Invites
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/invite_id"
    put:
      description: Update Admin Invite
      operationId: updateOrgAdminInvite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: user@example.com
                  first_name: string
                  last_name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgAdminInvite
      tags:
        - Orgs Invites
  "/api/v1/orgs/{org_id}/jsi/devices":
    get:
      description: Get List of Org devices that connected to JSI
      operationId: listOrgJsiDevices
      parameters:
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: serial
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - ext_ip: 73.92.124.103
                      last_seen: 1654636867
                      mac: c15353123096
                      model: EX2300-C-12P
                      serial: DGCOO0015
              schema:
                items:
                  properties:
                    ext_ip:
                      description: when available
                      type: string
                    last_seen:
                      type: integer
                    mac:
                      type: string
                    model:
                      type: string
                    serial:
                      type: string
                  type: object
                type: array
                x-examples:
                  example-1:
                    - ext_ip: 73.92.124.103
                      last_seen: 1654636867
                      mac: c15353123096
                      model: EX2300-C-12P
                      serial: DGCOO0015
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgJsiDevices
      tags:
        - Orgs JSI
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/jsi/devices/outbound_ssh_cmd":
    get:
      description: |
        Adopt JSI devices
      operationId: adoptOrgJsiDevice
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    cmd: |-
                      set system services ssh...
                      ...
                      set system services outbound-ssh client mist ...
              schema:
                properties:
                  cmd:
                    type: string
                type: object
                x-examples:
                  example-1:
                    cmd: |-
                      set system services ssh...
                      ...
                      set system services outbound-ssh client mist ...
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: adoptOrgJsiDevice
      tags:
        - Orgs JSI
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/jsi/devices/{device_mac}/shell":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_mac"
    post:
      description: Create Shell Session
      operationId: createOrgJsiDeviceShellSession
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    session: 19e73828-937f-05e6-f709-e29efdb0a82b
                    url: wss://api-ws.mist.com/ssh?jwt=xxxx
              schema:
                properties:
                  session:
                    type: string
                  url:
                    type: string
                type: object
                x-examples:
                  example-1:
                    session: 19e73828-937f-05e6-f709-e29efdb0a82b
                    url: wss://api-ws.mist.com/ssh?jwt=xxxx
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgJsiDeviceShellSession
      tags:
        - Orgs JSI
  "/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-1:
                value:
                  version: 3.1.5
            schema:
              properties:
                version:
                  type: string
              type: object
              x-examples:
                example-1:
                  version: 3.1.5
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeOrgJsiDevice
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/jsi/inventory":
    get:
      description: Get List of all devices purchased from the accounts associated with the Org
      operationId: listOrgJsiPastPurchases
      parameters:
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: serial
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - contract_end_time: 1708214400
                      contract_id: "68247710"
                      contract_sku: PAR-SDCE-EX4300T48
                      contract_start_time: 1629331200
                      customer_po: "4501942932"
                      distributor: dist1
                      eol_time: 1671062400
                      eos_time: 1828828800
                      installed_address: Address
                      model: EX4300-48T
                      order_id: "15909647"
                      reseller: reseller1
                      serial: PE3721050223
                      sku: EX4300-48T-AFI
                      type: switch
                      warranty_end_time: 2258236800
                      warranty_start_time: 1619395200
                      warranty_type: Enhanced Hardware Warranty
              schema:
                items:
                  properties:
                    contract_end_time:
                      type: integer
                    contract_id:
                      type: string
                    contract_sku:
                      type: string
                    contract_start_time:
                      type: integer
                    customer_po:
                      description: po number associated with this SKU
                      type: string
                    distributor:
                      description: distributor name
                      type: string
                    eol_time:
                      description: end of life time
                      type: integer
                    eos_time:
                      description: end of support time
                      type: integer
                    installed_address:
                      description: address where the device is installed. It is a combination of address , region , country , zip
                      type: string
                    model:
                      description: model of the install base inventory
                      type: string
                    order_id:
                      description: order ID associated with this SKU
                      type: string
                    reseller:
                      description: reseller name
                      type: string
                    serial:
                      description: serial Number of the inventory
                      type: string
                    sku:
                      description: serviceable device stock
                      type: string
                    type:
                      enum:
                        - ap
                        - switch
                        - gateway
                      type: string
                    warranty_end_time:
                      type: integer
                    warranty_start_time:
                      type: integer
                    warranty_type:
                      type: string
                  type: object
                type: array
                x-examples:
                  Example 1:
                    - contract_end_time: 1708214400
                      contract_id: "68247710"
                      contract_sku: PAR-SDCE-EX4300T48
                      contract_start_time: 1629331200
                      customer_po: "4501942932"
                      distributor: dist1
                      eol_time: 1671062400
                      eos_time: 1828828800
                      installed_address: Address
                      model: EX4300-48T
                      order_id: "15909647"
                      reseller: reseller1
                      serial: PE3721050223
                      sku: EX4300-48T-AFI
                      type: switch
                      warranty_end_time: 2258236800
                      warranty_start_time: 1619395200
                      warranty_type: Enhanced Hardware Warranty
          description: OK
        "400":
          content:
            application/json:
              examples:
                No Juniper Account Linked:
                  value:
                    detail: no juniper account linked
              schema:
                properties:
                  detail:
                    type: string
                type: object
                x-examples:
                  example-1:
                    detail: no juniper account linked
          description: Bad Requeno Juniper Account Linkedst
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgJsiPastPurchases
      tags:
        - Orgs JSI
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/junos/register_cmd":
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/licenses":
    get:
      description: Get the list of licenses
      operationId: getOrgLicencesSummary
      responses:
        "200":
          $ref: "#/components/responses/Licence"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgLicencesSummary
      tags:
        - Orgs Licenses
    parameters:
      - $ref: "#/components/parameters/org_id"
    put:
      description: |-
        Move, Undo Move or Delete Org License to Another Org
        If the admin has admin privilege against the `org_id` and `dst_org_id`, he can move some of the licenses to another Org. Given that: 
        1. the specified license is currently active 
        2. there’s enough licenses left in the specified license (by subscription_id) 
        3. there will still be enough entitled licenses for the type of license after the amendment
      operationId: moveOrDeleteOrgLicenseToAnotherOrg
      requestBody:
        content:
          application/json:
            examples:
              annotate:
                value:
                  notes: customer notes
                  op: annotate
                  subscription_id: SUB-000144
              delete:
                value:
                  op: delete
                  subscription_id: SUB-0000144
              move:
                value:
                  dst_org_id: 3eff35f7-c218-894e-bca2-24e5325601cc
                  op: amend
                  quantity: 10
                  subscription_id: SUB-0000144
              undo_move:
                value:
                  amendment_id: 2b9116ab-cd1e-e897-6e08-31fccd88e792
                  op: unamend
            schema:
              properties:
                amendment_id:
                  description: if `op`==`unamend`, the ID of the operation to cancel
                  format: uuid
                  type: string
                dst_org_id:
                  description: if `op`==`amend`, the id of the org where the licence is moved
                  format: uuid
                  type: string
                notes:
                  description: if `op`==`annotate`
                  type: string
                op:
                  description: to move a license, use the `amend` operation
                  enum:
                    - amend
                    - unamend
                    - delete
                    - annotate
                  type: string
                quantity:
                  description: if `op`==`amend`, the number of licences to mo
                  type: integer
                subscription_id:
                  description: if `op`==`amend`, the ID of the subscription to use
                  type: string
              required:
                - op
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: moveOrDeleteOrgLicenseToAnotherOrg
      tags:
        - Orgs Licenses
  "/api/v1/orgs/{org_id}/licenses/usages":
    get:
      description: |-
        Get Licenses Usage by Sites
        This shows license usage (i.e. needed) based on the features enabled for the site.
      operationId: getOrgLicencesBySite
      responses:
        "200":
          $ref: "#/components/responses/LicenceUsage"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgLicencesBySite
      tags:
        - Orgs Licenses
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/logs":
    get:
      description: Get List of change logs for the current Org
      operationId: listOrgLogs
      parameters:
        - description: site id
          in: query
          name: site_id
          schema:
            type: string
        - description: admin name or email
          in: query
          name: admin_name
          schema:
            type: string
        - description: message
          in: query
          name: message
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/LogsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgLogs
      tags:
        - Orgs Logs
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/logs/count":
    get:
      description: Count by Distinct Attributes of Audit Logs
      operationId: countOrgLogs
      parameters:
        - in: query
          name: distinct
          required: true
          schema:
            default: admin_name
            enum:
              - admin_id
              - admin_name
              - message
              - site_id
            type: string
        - in: query
          name: admin_id
          schema:
            type: string
        - in: query
          name: admin_name
          schema:
            type: string
        - in: query
          name: site_id
          schema:
            type: string
        - in: query
          name: message
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgLogs
      tags:
        - Orgs Logs
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/maps/import":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Import data from files is a multipart POST which has a file, an optional json, and an optional csv, to create floorplan, assign matching inventory to specific site, place ap if name or mac matches

        ### CSV File Format
        ```csv
        Vendor AP name,Mist AP Mac
        US Office AP-2 - 5c:5b:35:00:00:02,5c5b35000002
        ``` 
      operationId: importOrgMaps
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                auto_deviceprofile_assignment:
                  default: false
                  description: boolean, whether to auto assign device to deviceprofile by name
                  type: boolean
                csv:
                  description: csv file for ap name mapping, optional
                  format: binary
                  type: string
                file:
                  format: binary
                  type: string
                json:
                  properties:
                    import_all_floorplans:
                      default: false
                      type: boolean
                    import_height:
                      default: true
                      type: boolean
                    import_orientation:
                      default: true
                      type: boolean
                    site_id:
                      format: uuid
                      type: string
                    vendor_name:
                      enum:
                        - ekahau
                        - ibwave
                      type: string
                  required:
                    - vendor_name
                    - site_id
                  type: object
              type: object
        description: ""
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    aps:
                      - action: ignored
                        floorplan_id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        height: 3
                        mac: 5c5b35000001
                        orientation: 45
                      - action: placed
                        height: 3
                        mac: 5c5b35000001
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        orientation: 45
                    floorplans:
                      - action: ignored
                        id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        name: map1
                        reason: no aps placed
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    summary:
                      num_ap_assigned: 1
                      num_inv_assigned: 1
                      num_map_assigned: 1
              schema:
                description: ""
                properties:
                  aps:
                    items:
                      properties:
                        action:
                          enum:
                            - placed
                            - assigned-placed
                            - named-placed
                            - assigned-named-placed
                            - ignored
                          minLength: 1
                          type: string
                        floorplan_id:
                          minLength: 1
                          type: string
                        height:
                          type: number
                        mac:
                          minLength: 1
                          type: string
                        map_id:
                          minLength: 1
                          type: string
                        orientation:
                          type: number
                        reason:
                          minLength: 1
                          type: string
                      required:
                        - mac
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  floorplans:
                    items:
                      properties:
                        action:
                          enum:
                            - imported
                            - ignored
                          minLength: 1
                          type: string
                        id:
                          minLength: 1
                          type: string
                        map_id:
                          minLength: 1
                          type: string
                        name:
                          minLength: 1
                          type: string
                        reason:
                          minLength: 1
                          type: string
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  site_id:
                    minLength: 1
                    type: string
                  summary:
                    properties:
                      num_ap_assigned:
                        type: number
                      num_inv_assigned:
                        type: number
                      num_map_assigned:
                        type: number
                    required:
                      - num_ap_assigned
                    type: object
                required:
                  - site_id
                  - aps
                type: object
                x-examples:
                  example-1:
                    aps:
                      - action: placed
                        floorplan_id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        height: 3
                        mac: 5c5b35000001
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        orientation: 45
                        reason: not found on site
                    floorplans:
                      - action: ignored
                        id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        name: map1
                        reason: no aps placed
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    summary:
                      num_ap_assigned: 1
                      num_inv_assigned: 1
                      num_map_assigned: 1
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importOrgMaps
      tags:
        - Orgs Maps
  "/api/v1/orgs/{org_id}/mxclusters":
    get:
      description: Get List of Org MxEdge Clusters
      operationId: listOrgMxEdgeClusters
      responses:
        "200":
          $ref: "#/components/responses/MxclustersArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMxEdgeClusters
      tags:
        - Orgs MxClusters
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create MxCluster
      operationId: createOrgMxEdgeCluster
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                  tunterm_ap_subnets:
                    - string
                  tunterm_hosts:
                    - string
            schema:
              $ref: "#/components/schemas/mxcluster"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxcluster"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgMxEdgeCluster
      tags:
        - Orgs MxClusters
  "/api/v1/orgs/{org_id}/mxclusters/{mxcluster_id}":
    delete:
      description: Delete Org MXEdge Cluster
      operationId: deleteOrgMxEdgeCluster
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgMxEdgeCluster
      tags:
        - Orgs MxClusters
    get:
      description: Get Org MxEdge Cluster Details
      operationId: getOrgMxEdgeCluster
      responses:
        "200":
          $ref: "#/components/responses/Mxcluster"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxEdgeCluster
      tags:
        - Orgs MxClusters
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxcluster_id"
    put:
      description: Update Org MxEdge Cluster
      operationId: updateOrgMxEdgeCluster
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                  tunterm_ap_subnets:
                    - string
                  tunterm_hosts:
                    - string
            schema:
              $ref: "#/components/schemas/mxcluster"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxcluster"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgMxEdgeCluster
      tags:
        - Orgs MxClusters
  "/api/v1/orgs/{org_id}/mxedges":
    get:
      description: Get List of Org MxEdges
      operationId: listOrgMxEdges
      parameters:
        - description: filter for site level mist edges
          in: query
          name: for_sites
          schema:
            default: any
            enum:
              - any
              - "true"
              - "false"
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
      responses:
        "200":
          $ref: "#/components/responses/MxedgesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMxEdges
      tags:
        - Orgs MxEdges
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create MxEdge
      operationId: createOrgMxEdge
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  model: ME-100
                  mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
                  mxedge_mgmt: {}
                  name: Guest
                  ntp_servers: []
                  oob_ip_config: {}
                  services:
                    - tunterm
                  tunterm_ip_config:
                    gateway: 10.2.1.254
                    ip: 10.2.1.1
                    netmask: 255.255.255.0
                  tunterm_port_config:
                    downstream_ports:
                      - "0"
                      - "1"
                      - "2"
                      - "3"
                    separate_upstream_downstream: true
                    upstream_port_vlan_id: 1
                    upstream_ports:
                      - "0"
                      - "1"
                      - "2"
                      - "3"
                  tunterm_switch_config:
                    "0":
                      port_vlan_id: 1
                      vlan_ids:
                        - 5
                        - 2
                        - 3
                    enabled: true
                  versions:
                    mxagent: 2.4.194
                    tunterm: 0.1.928-1
            schema:
              $ref: "#/components/schemas/mxedge"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgMxEdge
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/assign":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Assign Org MxEdge to Site
      operationId: assignOrgMxEdgeToSite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  mxedge_ids:
                    - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              properties:
                mxedge_ids:
                  items:
                    type: string
                  type: array
                site_id:
                  type: string
              required:
                - site_id
                - mxedge_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/assignSuccess"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: assignOrgMxEdgeToSite
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/claim":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: For a Mist Edge in default state, it will show a random claim code like `135-546-673` which you can “claim” it into your Org
      operationId: claimOrgMxEdge
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  code: 135-546-673
            schema:
              properties:
                code:
                  type: string
              required:
                - code
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/claimMxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: claimOrgMxEdge
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/unassign":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Unassign Org MxEdge from Site
      operationId: unassignOrgMxEdgeFromSite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  mxedge_ids:
                    - 387804a7-3474-85ce-15a2-f9a9684c9c90
            schema:
              properties:
                mxedge_ids:
                  items:
                    type: string
                  type: array
              required:
                - mxedge_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/assignSuccess"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unassignOrgMxEdgeFromSite
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/upgrade":
    get:
      description: Get List of Org Mist Edge Upgrades
      operationId: listOrgMxEdgeUpgrades
      responses:
        "200":
          $ref: "#/components/responses/MxEdgeUpgradesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMxEdgeUpgrades
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Upgrade Mist Edges
      operationId: upgradeOrgMxEdges
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  channel: stable
                  mxedge_ids:
                    - 387804a7-3474-85ce-15a2-f9a9684c9c90
                  versions:
                    mxagent: current
                    tunterm: default
            schema:
              properties:
                allow_downgrades:
                  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
                channel:
                  default: stable
                  description: upgrade channel to follow, stable (default) / beta / alpha
                  enum:
                    - stable
                    - beta
                    - alpha
                  type: string
                distro:
                  description: distro upgrade, optional, to specific codename (e.g. bullseye) with highest qualified versions
                  type: string
                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
                strategy:
                  default: big_bang
                  description: |
                    * `big_bang`: upgrade all at once
                    * `serial`: one at a time
                  enum:
                    - big_bang
                    - serial
                  type: string
                versions:
                  description: version to upgrade for each service, optional (ignored if distro upgrade)
                  properties:
                    mxagent:
                      type: string
                    mxdas:
                      type: string
                    mxocproxy:
                      type: string
                    radsecproxy:
                      type: string
                    tunterm:
                      type: string
                  required:
                    - mxagent
                    - tunterm
                  type: object
              required:
                - mxedge_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeOrgMxEdges
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/mxedges/upgrade/{upgrade_id}":
    get:
      description: Get Mist Edge Upgrade
      operationId: getOrgMxEdgeUpgrade
      responses:
        "200":
          $ref: "#/components/responses/MxEdgeUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxEdgeUpgrade
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/upgrade_id"
  "/api/v1/orgs/{org_id}/mxedges/version":
    get:
      description: Get Mist Edge Upgrade Information
      operationId: getOrgMxEdgeUpgradeInfo
      parameters:
        - description: upgrade channel to follow, stable (default) / beta / alpha
          in: query
          name: channel
          schema:
            default: stable
            enum:
              - stable
              - beta
              - alpha
            type: string
      responses:
        "200":
          $ref: "#/components/responses/MxedgeUpdateInfo"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxEdgeUpgradeInfo
      tags:
        - Orgs MxEdges
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}":
    delete:
      description: Delete Org MxEdge
      operationId: deleteOrgMxEdge
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgMxEdge
      tags:
        - Orgs MxEdges
    get:
      description: Get Org MxEdge details
      operationId: getOrgMxEdge
      responses:
        "200":
          $ref: "#/components/responses/Mxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxEdge
      tags:
        - Orgs MxEdges
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    put:
      description: Update Org MxEdge
      operationId: updateOrgMxEdge
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  magic: string
                  model: string
                  mxcluster_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  ntp_servers:
                    - string
                  services:
                    - tunterm
                  tunterm_ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ip: string
                    netmask: string
                  tunterm_port_config:
                    downstream_ports:
                      - string
                    separate_upstream_downstream: true
                    upstream_port_vlan_id: 1
                    upstream_ports:
                      - string
            schema:
              $ref: "#/components/schemas/mxedge"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgMxEdge
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/restart":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    post:
      description: In the case where a Mist Edge is replaced, you would need to unregister it. Which disconnects the currently the connected Mist Edge and allow another to register.
      operationId: restartOrgMxEdge
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: restartOrgMxEdge
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/services/tunterm/bounce_port":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    post:
      description: Bounce TunTerm Data Ports
      operationId: bounceOrgMxEdgeDataPorts
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  ports:
                    - "0"
                    - "2"
              example-2:
                value:
                  hold_time: 0
                  ports:
                    - string
            schema:
              properties:
                hold_time:
                  description: in milli seconds, hold time between multiple port bounces
                  type: integer
                ports:
                  description: list of ports to bounce
                  items:
                    type: string
                  type: array
              required:
                - ports
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: bounceOrgMxEdgeDataPorts
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/services/{name}/{action}":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
      - in: path
        name: name
        required: true
        schema:
          enum:
            - tunterm
            - radsecproxy
            - mxagent
            - mxocproxy
            - mxdas
          type: string
      - description: restart or start or stop
        in: path
        name: action
        required: true
        schema:
          enum:
            - restart
            - start
            - stop
          type: string
    post:
      description: Control Services on a Mist Edge
      operationId: controlOrgMxEdgeServices
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: controlOrgMxEdgeServices
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/support":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    post:
      description: Support / Upload Mist Edge support files
      operationId: uploadOrgMxEdgeSupportFiles
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uploadOrgMxEdgeSupportFiles
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/unregister":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    post:
      description: In the case where a Mist Edge is replaced, you would need to unregister it. Which disconnects the currently the connected Mist Edge and allow another to register.
      operationId: unregisterOrgMxEdge
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unregisterOrgMxEdge
      tags:
        - Orgs MxEdges
  "/api/v1/orgs/{org_id}/mxedges/{mxedge_id}/upgrade":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
    post:
      description: Upgrade MxEdge
      operationId: upgradeOrgMxEdge
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  channel: stable
                  mxedge_ids:
                    - string
                  versions:
                    mxagent: current
                    tunterm: current
            schema:
              properties:
                channel:
                  default: stable
                  description: upgrade channel to follow, stable (default) / beta / alpha
                  enum:
                    - stable
                    - beta
                    - alpha
                  type: string
                mxedge_ids:
                  description: list of mxedge IDs to upgrade
                  items:
                    type: string
                  type: array
                versions:
                  description: version to upgrade for each service, optional, current (assumed) / latest / default / specific version (e.g. 2.5.100)
                  properties:
                    mxagent:
                      default: current
                      type: string
                    tunterm:
                      default: current
                      type: string
                  type: object
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeOrgMxEdge
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/mxtunnels":
    get:
      description: Get List of Org MxTunnels
      operationId: listOrgMxTunnels
      responses:
        "200":
          $ref: "#/components/responses/MxtunnelsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMxTunnels
      tags:
        - Orgs MxTunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create MxTunnel
      operationId: createOrgMxTunnel
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  cluster_ids:
                    - string
                  created_time: 0
                  for_site: true
                  hello_interval: 60
                  hello_retries: 7
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ipsec:
                    dns_servers:
                      - string
                    enabled: true
                    extra_routes:
                      - dest: string
                        next_hop: 192.168.0.1
                    split_tunnel: true
                    use_mxedge: true
                  modified_time: 0
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  vlan_ids:
                    - 0
            schema:
              $ref: "#/components/schemas/mxtunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgMxTunnel
      tags:
        - Orgs MxTunnels
  "/api/v1/orgs/{org_id}/mxtunnels/{mxtunnel_id}":
    delete:
      description: Delete Org MxTunnel
      operationId: deleteOrgMxTunnel
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgMxTunnel
      tags:
        - Orgs MxTunnels
    get:
      description: Get Org MxTunnel Details
      operationId: getOrgMxTunnel
      responses:
        "200":
          $ref: "#/components/responses/Mxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxTunnel
      tags:
        - Orgs MxTunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxtunnel_id"
    put:
      description: Update Org MxTunnel
      operationId: updateOrgMxTunnel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/mxtunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Mxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgMxTunnel
      tags:
        - Orgs MxTunnels
  "/api/v1/orgs/{org_id}/nacrules":
    get:
      description: Get List of Org NAC Rules
      operationId: listOrgNacRules
      responses:
        "200":
          $ref: "#/components/responses/NacRulesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgNacRules
      tags:
        - Orgs NAC Rules
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: create Org NAC Rule
      operationId: createOrgNacRule
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  action: allow
                  apply_tags:
                    - c049dfcd-0c73-5014-1c64-062e9903f1e5"
                  matching:
                    auth_type: cert
                    nactags:
                      - 041d5d36-716c-4cfb-4988-3857c6aa14a2
                      - a809a97f-d599-f812-eb8c-c3f84aabf6ba
                    port_types:
                      - wired
                    site_ids:
                      - bb19fc3e-4124-4b57-80d9-c3f6edce47c4
                      - bb19fc3e-6564-4b57-80d9-c3f6edce47c1
                    sitegroup_ids:
                      - bb19fc3e-4124-4b57-80d9-c3f6edce47c4
                      - bb19fc3e-6564-4b57-80d9-c3f6edce47c1
                  name: name1
                  not_matching: {}
                  order: 1
            schema:
              $ref: "#/components/schemas/nac_rule"
      responses:
        "200":
          $ref: "#/components/responses/NacRule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgNacRule
      tags:
        - Orgs NAC Rules
  "/api/v1/orgs/{org_id}/nacrules/{nacrule_id}":
    delete:
      description: Delete Org NAC Rule
      operationId: deleteOrgNacRule
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgNacRule
      tags:
        - Orgs NAC Rules
    get:
      description: Get Org NAC Rule
      operationId: getOrgNacRule
      responses:
        "200":
          $ref: "#/components/responses/NacRule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgNacRule
      tags:
        - Orgs NAC Rules
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/nacrule_id"
    put:
      description: Update Org NAC Rule
      operationId: updateOrgNacRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/nac_rule"
      responses:
        "200":
          $ref: "#/components/responses/NacRule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgNacRule
      tags:
        - Orgs NAC Rules
  "/api/v1/orgs/{org_id}/nactags":
    get:
      description: Get List of Org NAC Tags
      operationId: listOrgNacTags
      responses:
        "200":
          $ref: "#/components/responses/NacTagsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgNacTags
      tags:
        - Orgs NAC Tags
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org NAC Tag
      operationId: createOrgNacTag
      requestBody:
        content:
          application/json:
            examples:
              matches_cert_cn:
                value:
                  match: cert_cn
                  name: staff
                  type: match
                  values:
                    - john
                    - staff*
              matches_cert_issuer:
                value:
                  match: cert_issuer
                  name: issuer1
                  type: match
                  values:
                    - /C=CN/ST=defy/L=defy/O=defy/OU=defy/CN=defy
              matches_cert_san:
                value:
                  match: cert_san
                  name: san1
                  type: match
                  values:
                    - henry1@defy.com
              matches_cert_serial:
                value:
                  match: cert_serial
                  name: serial1
                  type: match
                  values:
                    - 6a524ab782fb468c00c59f51cff00268d95533b8
              matches_cert_sub:
                value:
                  match: cert_sub
                  name: subject1
                  type: match
                  values:
                    - /C=CN/ST=defy/O=defy/OU=defy/CN=steve
              matches_radius_group:
                value:
                  name: group
                  radius_group: VIP
                  type: radius_group
              matches_realm:
                value:
                  match: realm
                  name: defy
                  type: match
                  values:
                    - defy.com
              matches_role:
                value:
                  match: idp_role
                  name: VIP
                  type: match
                  values:
                    - vip
              matches_username:
                value:
                  match: user_name
                  name: admins
                  type: match
                  values:
                    - bob
                    - steve
              matches_vendor:
                value:
                  match: vendor
                  name: guest-wlan
                  type: match
                  values:
                    - cisco
              matches_vlan:
                value:
                  name: vlan
                  type: vlan
                  vlan: "30"
            schema:
              $ref: "#/components/schemas/nac_tag"
      responses:
        "200":
          $ref: "#/components/responses/NacTag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgNacTag
      tags:
        - Orgs NAC Tags
  "/api/v1/orgs/{org_id}/nactags/{nactag_id}":
    delete:
      description: Delete Org NAC Tag
      operationId: DeleteOrgNacTag
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: DeleteOrgNacTag
      tags:
        - Orgs NAC Tags
    get:
      description: Get Org NAC Tag
      operationId: getOrgNacTag
      responses:
        "200":
          $ref: "#/components/responses/NacTag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgNacTag
      tags:
        - Orgs NAC Tags
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/nactag_id"
    put:
      description: "Update Org NAC Tag "
      operationId: updateOrgNacTag
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/nac_tag"
      responses:
        "200":
          $ref: "#/components/responses/NacTag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgNacTag
      tags:
        - Orgs NAC Tags
  "/api/v1/orgs/{org_id}/networks":
    get:
      description: Get List of Org Networks
      operationId: listOrgNetworks
      responses:
        "200":
          $ref: "#/components/responses/NetworksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgNetworks
      tags:
        - Orgs Networks
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Organization Network
      operationId: createOrgNetwork
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: guest
                  subnet: 192.168.70.0/24
                  vlan_id: 70
            schema:
              $ref: "#/components/schemas/network"
      responses:
        "200":
          $ref: "#/components/responses/Network"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgNetwork
      tags:
        - Orgs Networks
  "/api/v1/orgs/{org_id}/networks/{network_id}":
    delete:
      description: Delete Organization Network
      operationId: deleteOrgNetwork
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgNetwork
      tags:
        - Orgs Networks
    get:
      description: Get Organization Network Details
      operationId: getOrgNetwork
      responses:
        "200":
          $ref: "#/components/responses/Network"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgNetwork
      tags:
        - Orgs Gateway Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/network_id"
    put:
      description: Update Organization Network
      operationId: updateOrgNetwork
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  subnet: string
                  vlan_id: 1
            schema:
              $ref: "#/components/schemas/network"
      responses:
        "200":
          $ref: "#/components/responses/Network"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgNetwork
      tags:
        - Orgs Networks
  "/api/v1/orgs/{org_id}/networktemplates":
    get:
      description: Get List of Org Network Templates
      operationId: listOrgNetworkTemplates
      responses:
        "200":
          $ref: "#/components/responses/NetworktemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgNetworkTemplates
      tags:
        - Orgs Network Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Update Org Network Templates
      operationId: createOrgNetworkTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  created_time: 0
                  dns_servers:
                    - string
                  dns_suffix:
                    - string
                  group_tags: {}
                  id: 497f6eca-6276-5028-bfeb-53cbbbba6f08
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                    property2:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  port_usages:
                    dynamic:
                      mode: dynamic
                      reset_default_when: link_down
                      rules:
                        - equals: string
                          equals_any:
                            - string
                          expression: string
                          src: lldp_chassis_id
                          usage: string
                    property1:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                    property2:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  snmp_config:
                    client_list:
                      - client_list_name: clist-1
                        clients:
                          - 151.140.101.218/32
                    contact: cns@juniper.net
                    description: Juniper QFX Series Switch - 1K_5LA
                    engine_id: local
                    location: Las Vegas, NV
                    name: TGH-1K-QFX10K
                    trap_groups:
                      - categories:
                          - authentication
                        group_name: profiler
                        targets:
                          - 172.29.158.19
                        version: v2
                    v2c_config:
                      - authorization: read-only
                        client_list_name: clist-1
                        community_name: abc123
                    v3_config:
                      notify:
                        - name: string
                          tag: string
                          type: trap
                      notify_filter:
                        - contents:
                            - include: true
                              oid: 1.3.6.1.4.1
                          profile_name: string
                      target_address:
                        - address: string
                          address_mask: string
                          port: 161
                          tag_list: string
                          target_address_name: string
                          target_parameters: string
                      target_parameters:
                        - message_processing_model: v1
                          name: string
                          notify_filter: string
                          security_level: authentication
                          security_model: usm
                          security_name: m01620
                      usm:
                        engine-id: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
                        engine_type: remote_engine
                        users:
                          - authentication_password: strings
                            authentication_type: authentication-md5
                            encryption_password: stringst
                            encryption_type: privacy-aes128
                            name: string
                      vacm:
                        access:
                          - group_name: string
                            prefix_list:
                              - context_prefix: iil
                                notify_view: all
                                read_view: all
                                security_level: privacy
                                security_model: any
                                type: default_context_prefix
                                write_view: all
                        security_to_group:
                          content:
                            - group: string
                              security_name: string
                          security_model: usm
                    views:
                      include: true
                      oid: 1.3.6.1
                      view_name: all
                  switch_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        match_role: string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                        switch_mgmt:
                          config_revert_timer: 10
                          dhcp_option_fqdn: false
                          mxedge_proxy_host: string
                          mxedge_proxy_port: 2222
                          use_mxedge_proxy: false
            schema:
              $ref: "#/components/schemas/networktemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Networktemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgNetworkTemplate
      tags:
        - Orgs Network Templates
  "/api/v1/orgs/{org_id}/networktemplates/{networktemplate_id}":
    delete:
      description: Delete Org Network Template
      operationId: deleteOrgNetworkTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgNetworkTemplate
      tags:
        - Orgs Network Templates
    get:
      description: Get Org Network Templates Details
      operationId: getOrgNetworkTemplate
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/networktemplate"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgNetworkTemplate
      tags:
        - Orgs Network Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/networktemplate_id"
    put:
      description: Update Org Network Template
      operationId: updateOrgNetworkTemplates
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  created_time: 0
                  dns_servers:
                    - string
                  dns_suffix:
                    - string
                  group_tags: {}
                  id: 497f6eca-6276-5029-bfeb-53cbbbba6f08
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                    property2:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  port_usages:
                    dynamic:
                      mode: dynamic
                      reset_default_when: link_down
                      rules:
                        - equals: string
                          equals_any:
                            - string
                          expression: string
                          src: lldp_chassis_id
                          usage: string
                    property1:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                    property2:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  snmp_config:
                    client_list:
                      - client_list_name: clist-1
                        clients:
                          - 151.140.101.218/32
                    contact: cns@juniper.net
                    description: Juniper QFX Series Switch - 1K_5LA
                    engine_id: local
                    location: Las Vegas, NV
                    name: TGH-1K-QFX10K
                    trap_groups:
                      - categories:
                          - authentication
                        group_name: profiler
                        targets:
                          - 172.29.158.19
                        version: v2
                    v2c_config:
                      - authorization: read-only
                        client_list_name: clist-1
                        community_name: abc123
                    v3_config:
                      notify:
                        - name: string
                          tag: string
                          type: trap
                      notify_filter:
                        - contents:
                            - include: true
                              oid: 1.3.6.1.4.1
                          profile_name: string
                      target_address:
                        - address: string
                          address_mask: string
                          port: 161
                          tag_list: string
                          target_address_name: string
                          target_parameters: string
                      target_parameters:
                        - message_processing_model: v1
                          name: string
                          notify_filter: string
                          security_level: authentication
                          security_model: usm
                          security_name: m01620
                      usm:
                        engine-id: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
                        engine_type: remote_engine
                        users:
                          - authentication_password: strings
                            authentication_type: authentication-md5
                            encryption_password: stringst
                            encryption_type: privacy-aes128
                            name: string
                      vacm:
                        access:
                          - group_name: string
                            prefix_list:
                              - context_prefix: iil
                                notify_view: all
                                read_view: all
                                security_level: privacy
                                security_model: any
                                type: default_context_prefix
                                write_view: all
                        security_to_group:
                          content:
                            - group: string
                              security_name: string
                          security_model: usm
                    views:
                      include: true
                      oid: 1.3.6.1
                      view_name: all
                  switch_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        match_role: string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                        switch_mgmt:
                          config_revert_timer: 10
                          dhcp_option_fqdn: false
                          mxedge_proxy_host: string
                          mxedge_proxy_port: 2222
                          use_mxedge_proxy: false
            schema:
              $ref: "#/components/schemas/networktemplate"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/networktemplate"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgNetworkTemplates
      tags:
        - Orgs Network Templates
  "/api/v1/orgs/{org_id}/ocdevices/outbound_ssh_cmd":
    get:
      description: |-
        Get Org Juniper Devices command

        Juniper devices can be managed/adopted by Mist. Currently outbound-ssh + netconf is used.
        A few lines of CLI commands are generated per-Org, allowing the Juniper devices to phone home to Mist.
      operationId: getOrgJuniperDevicesCommand
      parameters:
        - description: site_id would be used for proxy config check of the site and automatic site assignment
          in: query
          name: site_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    cmd: |-
                      set system services ssh...
                      ...
                      set system services outbound-ssh client mist ...
              schema:
                properties:
                  cmd:
                    type: string
                required:
                  - cmd
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgJuniperDevicesCommand
      tags:
        - Orgs Devices
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/otherdevices":
    get:
      description: Get List of Org other devices (3rd party devices)
      operationId: listOrgOtherDevices
      parameters:
        - in: query
          name: vendor
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: serial
          schema:
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/DeviceOtherArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgOtherDevices
      tags:
        - Orgs Devices Others
    parameters:
      - $ref: "#/components/parameters/org_id"
    put:
      description: If the Site / Device cannot be identified, a manual association can be made. Either a site_id or a device_mac needs to be provided.
      operationId: updateOrgOtherDevices
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  device_mac: 0adfea67e65b
                  macs:
                    - 5c5b350e0001
                    - 5c5b350e0003
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              properties:
                device_mac:
                  type: string
                macs:
                  items:
                    type: string
                  type: array
                site_id:
                  description: Either a site_id OR a device_mac must be provided
                  type: string
              type: object
              x-examples:
                Example 1:
                  device_mac: 0adfea67e65b
                  macs:
                    - 5c5b350e0001
                    - 5c5b350e0003
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgOtherDevices
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/otherdevices/{device_mac}":
    delete:
      description: Delete OtherDevice
      operationId: deleteOrgOtherDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgOtherDevice
      tags:
        - Orgs Devices Others
    get:
      description: Get Org other device (3rd party device)
      operationId: getOrgOtherDevice
      responses:
        "200":
          $ref: "#/components/responses/DeviceOther"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgOtherDevice
      tags:
        - Orgs Devices Others
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_mac"
    put:
      description: If the Site / Device cannot be identified, a manual association can be made
      operationId: updateOrgOtherDevice
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  device_mac: 0adfea67e65b
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              properties:
                device_mac:
                  type: string
                site_id:
                  type: string
              type: object
              x-examples:
                Example 1:
                  device_mac: 0adfea67e65b
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
        description: ""
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgOtherDevice
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/pma/dashboards":
    get:
      description: Get List of premium analytics dashboards for this Org
      operationId: listOrgPmaDashboards
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - name: dashboard_1
                      url: https://mist.looker.com/login/embed/%2Fembed%2Fdashboards%2F1?group_ids=%5B3%5D&last_name=%22%22&models=%5B%22generic%22%5D&.....
              schema:
                items:
                  properties:
                    name:
                      type: string
                    url:
                      type: string
                  type: object
                type: array
                x-examples:
                  example-1:
                    - name: dashboard_1
                      url: https://mist.looker.com/login/embed/%2Fembed%2Fdashboards%2F1?group_ids=%5B3%5D&last_name=%22%22&models=%5B%22generic%22%5D&.....
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgPmaDashboards
      tags:
        - Orgs Premium Analytics
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/pskportals":
    get:
      description: Get List of Org Psk Portals
      operationId: listOrgPskPortals
      responses:
        "200":
          $ref: "#/components/responses/PskPortalsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgPskPortals
      tags:
        - Orgs Psk Portals
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Psk Portal
      operationId: createOrgPskPortal
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  auth: sso
                  created_time: 0
                  expire: 0
                  id: string
                  max_usage: 0
                  modified_time: 0
                  name: string
                  org_id: string
                  required_fields:
                    - string
                  role: string
                  ssid: string
                  sso:
                    default_role: string
                    forced_role: string
                    idp_cert: string
                    idp_sign_algo: string
                    idp_sso_url: string
                    issuer: string
                    nameid_format: string
                  sso_required_role: string
                  template_url: string
                  type: byod
                  vlan_id: 0
            schema:
              $ref: "#/components/schemas/psk_portal"
      responses:
        "200":
          $ref: "#/components/responses/PskPortal"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgPskPortal
      tags:
        - Orgs Psk Portals
  "/api/v1/orgs/{org_id}/pskportals/{pskportal_id}":
    delete:
      description: Delete Org Psk Portal
      operationId: deleteOrgPskPortal
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgPskPortal
      tags:
        - Orgs Psk Portals
    get:
      description: get Org Psk Portal Details
      operationId: getOrgPskPortal
      responses:
        "200":
          $ref: "#/components/responses/PskPortal"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgPskPortal
      tags:
        - Orgs Psk Portals
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/pskportal_id"
    put:
      description: update Org Psk Portal
      operationId: updateOrgPskPortal
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  auth: sso
                  created_time: 0
                  expire: 0
                  id: string
                  max_usage: 0
                  modified_time: 0
                  name: string
                  org_id: string
                  required_fields:
                    - string
                  role: string
                  ssid: string
                  sso:
                    default_role: string
                    forced_role: string
                    idp_cert: string
                    idp_sign_algo: string
                    idp_sso_url: string
                    issuer: string
                    nameid_format: string
                  sso_required_role: string
                  template_url: string
                  type: byod
                  vlan_id: 0
            schema:
              $ref: "#/components/schemas/psk_portal"
      responses:
        "200":
          $ref: "#/components/responses/PskPortal"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgPskPortal
      tags:
        - Orgs Psk Portals
  "/api/v1/orgs/{org_id}/psks":
    get:
      description: Get List of Org Psks
      operationId: listOrgPsks
      parameters:
        - example: psk_name
          in: query
          name: name
          schema:
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - in: query
          name: role
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgPsks
      tags:
        - Orgs Psks
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org PSK
      operationId: createOrgPsk
      parameters:
        - description: if a key exists with the same `name`, replace it with the new one
          in: query
          name: upsert
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/psk"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgPsk
      tags:
        - Orgs Psks
    put:
      description: Update multi PSKs
      operationId: updateOrgMultiPsks
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - created_time: 0
                    expire_time: 1614990263
                    id: 426f6eca-6286-4993-bfeb-53cbbbba6f07
                    mac: string
                    max_usage: 0
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    passphrase: stringst
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    ssid: string
                    usage: multi
                    vlan_id: 0
            schema:
              items:
                $ref: "#/components/schemas/psk"
              type: array
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgMultiPsks
      tags:
        - Orgs Psks
  "/api/v1/orgs/{org_id}/psks/import":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Import PSK from CSV file or JSON

        ## CSV File Format
        ```
        PSK Import CSV File Format:
        name,ssid,passphrase,usage,vlan_id,mac,max_usage,role,expire_time,notify_expiry,expiry_notification_time,notify_on_create_or_edit,email
        Common,warehouse,foryoureyesonly,single,35,a31425f31278,0,student,1618594236
        Justin,reception,visible,multi,1002,200,teacher,1618594236
        Common2,ssid,1245678-xx,single,35,a31425f31278,0,student,1618594236,true,7,true,admin@test.com
        ```
      operationId: importOrgPsks
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - created_time: 0
                    expire_time: 1614990263
                    id: 425f6eca-6376-4993-bfeb-53cbbbba6f06
                    mac: string
                    max_usage: 0
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    passphrase: stringst
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    ssid: string
                    usage: multi
                    vlan_id: 0
            schema:
              description: ""
              items:
                $ref: "#/components/schemas/psk"
              minItems: 1
              type: array
              uniqueItems: true
              x-examples:
                example-1:
                  - expire_time: "1618594236"
                    mac: a31425f31278
                    max_usage: 300
                    name: Common
                    passphrase: foryoureyesonly
                    role: teacher
                    ssid: warehouse
                    usage: single
                    vlan_id: 35
                  - mac: null
                    name: Justin
                    passphrase: visible
                    ssid: reception
                    usage: multi
                    vlan_id: 1002
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importOrgPsks
      tags:
        - Orgs Psks
  "/api/v1/orgs/{org_id}/psks/{psk_id}":
    delete:
      description: Delete Org PSK
      operationId: deleteOrgPsk
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgPsk
      tags:
        - Orgs Psks
    get:
      description: Get Org PSK Details
      operationId: getOrgPsk
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgPsk
      tags:
        - Orgs Psks
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/psk_id"
    put:
      description: "Update Org PSK "
      operationId: updateOrgPsk
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/psk"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgPsk
      tags:
        - Orgs Psks
  "/api/v1/orgs/{org_id}/psks/{psk_id}/delete_old_passphrase":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/psk_id"
    post:
      description: |-
        Delete `old_passphrase` from PSK. 
        If successful, response is same as GET, returns the PSK with `old_passphrase` removed.
      operationId: deleteOrgPskOldPassphrase
      requestBody:
        content:
          application/json:
            schema:
              properties: {}
              type: object
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgPskOldPassphrase
      tags:
        - Orgs Psks
  "/api/v1/orgs/{org_id}/rftemplates":
    get:
      description: Get List of Org RF Template
      operationId: listOrgRfTemplates
      responses:
        "200":
          $ref: "#/components/responses/RftemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgRfTemplates
      tags:
        - Orgs RF Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org RF Template
      operationId: createOrgRfTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/rftemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Rftemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgRfTemplate
      tags:
        - Orgs RF Templates
  "/api/v1/orgs/{org_id}/rftemplates/{rftemplate_id}":
    delete:
      description: Delete Org RF Template
      operationId: deleteOrgRfTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgRfTemplate
      tags:
        - Orgs RF Templates
    get:
      description: Get Org RF Template Details
      operationId: getOrgRfTemplate
      responses:
        "200":
          $ref: "#/components/responses/Rftemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgRfTemplate
      tags:
        - Orgs RF Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/rftemplate_id"
    put:
      description: "Update Org RF Template "
      operationId: updateOrgRfTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/rftemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Rftemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgRfTemplate
      tags:
        - Orgs RF Templates
  "/api/v1/orgs/{org_id}/sdkclients/{sdkclient_id}":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdkclient_id"
    put:
      description: Update SDK Client
      operationId: updateSdkClient
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: John Smith
            schema:
              properties:
                name:
                  type: string
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSdkClient
      tags:
        - Orgs SDK Clients
  "/api/v1/orgs/{org_id}/sdkinvites":
    get:
      description: Get List of Org SDK Invites
      operationId: listSdkInvites
      responses:
        "200":
          $ref: "#/components/responses/SdkinvitesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSdkInvites
      tags:
        - Orgs SDK Invites
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create SDK Invite
      operationId: createSdkInvite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  enabled: true
                  name: string
                  quota: 0
                  quota_limited: true
            schema:
              $ref: "#/components/schemas/sdkinvite"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sdkinvite"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSdkInvite
      tags:
        - Orgs SDK Invites
  "/api/v1/orgs/{org_id}/sdkinvites/{sdkinvite_id}":
    delete:
      description: Revoke SDK Invite
      operationId: revokeSdkInvite
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: revokeSdkInvite
      tags:
        - Orgs SDK Invites
    get:
      description: Get SDK Invite Details
      operationId: getSdkInvite
      responses:
        "200":
          $ref: "#/components/responses/Sdkinvite"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSdkInvite
      tags:
        - Orgs SDK Invites
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdkinvite_id"
    put:
      description: Update SDK Invite
      operationId: updateSdkInvite
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sdkinvite"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sdkinvite"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSdkInvite
      tags:
        - Orgs SDK Invites
  "/api/v1/orgs/{org_id}/sdkinvites/{sdkinvite_id}/email":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdkinvite_id"
    post:
      description: Send SDK Invite by Email
      operationId: sendSdkInviteEmail
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: test@abc.com
            schema:
              $ref: "#/components/schemas/Model_object_email"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: sendSdkInviteEmail
      tags:
        - Orgs SDK Invites
  "/api/v1/orgs/{org_id}/sdkinvites/{sdkinvite_id}/qrcode":
    get:
      description: Revoke SDK Invite
      operationId: getSdkInviteQrCode
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSdkInviteQrCode
      tags:
        - Orgs SDK Invites
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdkinvite_id"
  "/api/v1/orgs/{org_id}/sdkinvites/{sdkinvite_id}/sms":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdkinvite_id"
    post:
      description: Send SDK Invite by SMS
      operationId: sendSdkInviteSms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  number: "14081234567"
            schema:
              properties:
                number:
                  type: string
              required:
                - number
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: sendSdkInviteSms
      tags:
        - Orgs SDK Invites
  "/api/v1/orgs/{org_id}/sdktemplates":
    get:
      description: Get List of Org SDK Templates
      operationId: listSdkTemplates
      responses:
        "200":
          $ref: "#/components/responses/SdktemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSdkTemplates
      tags:
        - Orgs SDK Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create SDK Template
      operationId: createSdkTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sdktemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sdktemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSdkTemplate
      tags:
        - Orgs SDK Templates
  "/api/v1/orgs/{org_id}/sdktemplates/{sdktemplate_id}":
    delete:
      description: Delete SDK Template
      operationId: deleteSdkTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSdkTemplate
      tags:
        - Orgs SDK Templates
    get:
      description: Get SDK Template Details
      operationId: getSdkTemplate
      responses:
        "200":
          $ref: "#/components/responses/Sdktemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSdkTemplate
      tags:
        - Orgs SDK Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sdktemplate_id"
    put:
      description: Update SDK Template
      operationId: updateSdkTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sdktemplate"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sdktemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSdkTemplate
      tags:
        - Orgs SDK Templates
  "/api/v1/orgs/{org_id}/secpolicies":
    get:
      description: Get List of Org Security Policies
      operationId: listOrgSecPolicies
      responses:
        "200":
          $ref: "#/components/responses/SecpoliciesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSecPolicies
      tags:
        - Orgs SecPolicies
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Security Policy
      operationId: createOrgSecPolicies
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  wlans:
                    - acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 0
                          secret: string
                      airwatch:
                        api_key: string
                        console_url: string
                        enabled: true
                        password: string
                        username: string
                      allow_ipv6_ndp: true
                      allow_mdns: true
                      ap_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      app_limit:
                        apps: {}
                        enabled: true
                        wxtag_ids: {}
                      app_qos:
                        apps:
                          skype-business-video:
                            dscp: 0
                            dst_subnet: string
                            src_subnet: string
                          skype-business-voice:
                            dscp: 0
                        enabled: true
                        others:
                          - dscp: 0
                            dst_subnet: string
                            port_ranges: string
                            protocol: string
                            src_subnet: string
                      apply_to: site
                      arp_filter: true
                      auth:
                        eap_reauth: true
                        enable_mac_auth: true
                        key_idx: 1
                        keys:
                          - string
                        multi_psk_only: true
                        owe: string
                        pairwise:
                          - string
                        private_wlan: true
                        psk: string123
                        type: open
                        wep_as_secondary_auth: true
                      auth_server_selection: ordered
                      auth_servers:
                        - host: string
                          port: 0
                          secret: string
                      auth_servers_nas_id: string
                      auth_servers_nas_ip: string
                      auth_servers_retries: 0
                      auth_servers_timeout: 0
                      band: string
                      band_steer: true
                      band_steer_force_band5: true
                      block_blacklist_clients: true
                      bonjour:
                        additional_vlan_ids:
                          - 0
                        enabled: true
                        services:
                          $service_name:
                            disable_local: true
                            radius_groups:
                              - string
                            scope: string
                      cisco_cwa:
                        allowed_hostnames:
                          - string
                        allowed_subnets:
                          - string
                        enabled: true
                      client_limit_down: 0
                      client_limit_down_enabled: true
                      client_limit_up: 0
                      client_limit_up_enabled: true
                      coa_servers:
                        - disable_event_timestamp_check: true
                          enabled: true
                          ip: 192.168.1.1
                          port: "3788"
                          secret: string
                      disable_11ax: true
                      disable_uapsd: true
                      disable_wmm: true
                      dns_server_rewrite:
                        enabled: true
                        radius_groups: {}
                      dtim: 0
                      dynamic_psk:
                        enabled: true
                      dynamic_vlan:
                        default_vlan_id: 1
                        enabled: true
                        local_vlan_ids:
                          - 1
                        type: standard
                        vlans: {}
                      enable_wireless_bridging: true
                      enabled: true
                      hide_ssid: true
                      hostname_ie: true
                      hotspot20:
                        enabled: true
                        operators:
                          - string
                        venue_name: string
                      interface: all
                      isolation: true
                      legacy_overds: true
                      limit_bcast: true
                      limit_probe_response: true
                      max_idletime: 60
                      mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      no_static_dns: true
                      no_static_ip: true
                      portal:
                        amazon_client_id: string
                        amazon_client_secret: string
                        amazon_email_domains:
                          - string
                        amazon_enabled: true
                        auth: none
                        azure_client_id: string
                        azure_client_secret: string
                        azure_enabled: true
                        azure_tenant_id: string
                        bypass_when_cloud_down: true
                        email_enabled: true
                        enabled: true
                        expire: 0
                        external_portal_url: string
                        facebook_client_id: string
                        facebook_client_secret: string
                        facebook_email_domains:
                          - string
                        facebook_enabled: true
                        forward: true
                        forward_url: string
                        google_email_domains:
                          - string
                        google_enabled: true
                        microsoft_client_id: string
                        microsoft_client_secret: string
                        microsoft_email_domains:
                          - string
                        microsoft_enabled: true
                        passphrase_enabled: true
                        password: string
                        portal_allowed_hostnames: string
                        portal_allowed_subnets: string
                        portal_api_secret: string
                        portal_denied_hostnames: string
                        portal_image: string
                        portal_sso_url: string
                        privacy: true
                        sms_enabled: true
                        sms_provider: manual
                        sponsor_email_domains:
                          - string
                        sponsor_enabled: true
                        sponsor_link_validity_duration: "60"
                        sso_default_role: string
                        sso_idp_cert: string
                        sso_idp_sign_algo: string
                        sso_idp_sso_url: string
                        sso_issuer: string
                        thumbnail: string
                        twilio_auth_token: string
                        twilio_phone_number: string
                        twilio_sid: string
                      portal_allowed_hostnames:
                        - string
                      portal_allowed_subnets:
                        - string
                      portal_api_secret: string
                      portal_denied_hostnames:
                        - string
                      portal_image: http://example.com
                      portal_sso_url: string
                      portal_template_url: string
                      qos:
                        class: best_effort
                        overwrite: true
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                      rateset:
                        "5":
                          ht: string
                          legacy:
                            - string
                          min_rssi: 0
                          template: string
                          vht: string
                        "24":
                          ht: string
                          legacy:
                            - string
                          min_rssi: 0
                          template: string
                          vht: string
                      roam_mode: 11r
                      schedule:
                        enabled: true
                        hours: {}
                      sle_excluded: true
                      ssid: string
                      thumbnail: http://example.com
                      use_eapol_v1: true
                      vlan_enabled: true
                      vlan_id: 1
                      vlan_ids:
                        - 1
                      vlan_pooling: true
                      wlan_limit_down: 0
                      wlan_limit_down_enabled: true
                      wlan_limit_up: 0
                      wlan_limit_up_enabled: true
                      wxtag_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      wxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      wxtunnel_remote_id: string
            schema:
              $ref: "#/components/schemas/secpolicy"
      responses:
        "200":
          $ref: "#/components/responses/Secpolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSecPolicies
      tags:
        - Orgs SecPolicies
  "/api/v1/orgs/{org_id}/secpolicies/{secpolicy_id}":
    delete:
      description: Delete Org Security Policy
      operationId: deleteOrgSecPolicy
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgSecPolicy
      tags:
        - Orgs SecPolicies
    get:
      description: Get Org Security Policy
      operationId: getOrgSecPolicy
      responses:
        "200":
          $ref: "#/components/responses/Secpolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSecPolicy
      tags:
        - Orgs SecPolicies
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/secpolicy_id"
    put:
      description: Update Org Security Policy
      operationId: updateOrgSecPolicies
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/secpolicy"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Secpolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSecPolicies
      tags:
        - Orgs SecPolicies
  "/api/v1/orgs/{org_id}/servicepolicies":
    get:
      description: Get List of Org Service Policies
      operationId: listOrgServicePolicies
      responses:
        "200":
          $ref: "#/components/responses/ServicePoliciesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgServicePolicies
      tags:
        - Orgs Service Policies
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Serrvice Policy
      operationId: createOrgServicePolicy
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  action: allow
                  name: string
                  services:
                    - string
                  tenants:
                    - string
            schema:
              $ref: "#/components/schemas/service_policy"
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/ServicePolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgServicePolicy
      tags:
        - Orgs Service Policies
  "/api/v1/orgs/{org_id}/servicepolicies/{servicepolicy_id}":
    delete:
      description: Delete Org Service Policuy
      operationId: deleteOrgServicePolicy
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgServicePolicy
      tags:
        - Orgs Service Policies
    get:
      description: Get Org Service Policy Details
      operationId: getOrgServicePolicy
      responses:
        "200":
          $ref: "#/components/responses/ServicePolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgServicePolicy
      tags:
        - Orgs Service Policies
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/servicepolicy_id"
    put:
      description: Update Org Serrvice Policy
      operationId: updateOrgServicePolicy
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  action: allow
                  name: string
                  services:
                    - string
                  tenants:
                    - string
            schema:
              $ref: "#/components/schemas/service_policy"
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/ServicePolicy"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgServicePolicy
      tags:
        - Orgs Service Policies
  "/api/v1/orgs/{org_id}/services":
    get:
      description: Get List of Org Services
      operationId: listOrgServices
      responses:
        "200":
          $ref: "#/components/responses/ServicesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgServices
      tags:
        - Orgs Services
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create getOrgServices Service
      operationId: createOrgService
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  app_key: string
                  name: string
                  network_id: d6797cf4-42b9-4cad-8591-9dd91c3f0fc3
                  specs:
                    - address: string
                      port: 0
                      protocol: any
                  subnet: string
                  type: custom
            schema:
              $ref: "#/components/schemas/service"
      responses:
        "200":
          $ref: "#/components/responses/Service"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgService
      tags:
        - Orgs Services
  "/api/v1/orgs/{org_id}/services/{service_id}":
    delete:
      description: deleteOrgService
      operationId: deleteOrgService
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgService
      tags:
        - Orgs Services
    get:
      description: Get Org Service
      operationId: getOrgService
      responses:
        "200":
          $ref: "#/components/responses/Service"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgService
      tags:
        - Orgs Services
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/service_id"
    put:
      description: update Org Service
      operationId: updateOrgService
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  addresses:
                    - string
                  app_caetgories:
                    - string
                  apps:
                    - string
                  dscp: 0
                  failover_policy: revertable
                  hostnames:
                    - string
                  max_jitter: 0
                  max_latency: string
                  max_loss: 0
                  name: string
                  sle_enabled: false
                  specs:
                    - port_range: 0
                      protocol: any
                  traffic_class: best_effort
                  traffic_type: data_best_effort
                  type: custom
                  vpn_name: addresses
            schema:
              $ref: "#/components/schemas/service"
      responses:
        "200":
          $ref: "#/components/responses/Service"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgService
      tags:
        - Orgs Services
  "/api/v1/orgs/{org_id}/setting":
    get:
      description: Get Org Settings
      operationId: getOrgSettings
      responses:
        "200":
          $ref: "#/components/responses/OrgSetting"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSettings
      tags:
        - Orgs Setting
    parameters:
      - $ref: "#/components/parameters/org_id"
    put:
      description: Update Org Settings
      operationId: updateOrgSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/org_setting"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    auto_device_naming:
                      enable: true
                      rules:
                        - expression: string
                          model: string
                          prefix: string
                          src: name
                          subnet: string
                          suffix: string
                          value: string
                    auto_deviceprofile_assignment:
                      enable: true
                      rules:
                        - expression: string
                          model: string
                          prefix: string
                          src: name
                          subnet: string
                          suffix: string
                          value: string
                    auto_site_assignment:
                      enable: true
                      rules:
                        - expression: string
                          model: string
                          prefix: string
                          src: name
                          subnet: string
                          suffix: string
                          value: string
                    cacerts:
                      - string
                    cloudshark:
                      apitoken: string
                      url: string
                    created_time: 0
                    device_cert:
                      cert: string
                      key: string
                    disable_pcap: true
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    installer:
                      allow_all_sites: true
                      extra_site_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      grace_period: 0
                    mgmt:
                      mxtunnel_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      use_mxtunnel: true
                      use_wxtunnel: true
                    modified_time: 0
                    msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    name: string
                    password_policy:
                      enabled: true
                      freshness: 0
                      min_length: 8
                      requires_special_char: true
                      requires_two_factor_auth: true
                    pcap:
                      bucket: string
                      max_pkt_len: 0
                    pcap_bucket_verified: true
                    remote_syslog:
                      enabled: true
                      send_to_all_servers: true
                      servers:
                        - facility: change-log
                          host: string
                          port: 0
                          protocol: udp
                          severity: critical
                          tag: string
                    security:
                      disable_local_ssh: true
                      fips_zeroize_password: string
                      limit_ssh_access: true
                    tags:
                      - string
                    ui_idle_timeout: 0
              schema:
                $ref: "#/components/schemas/org_setting"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSettings
      tags:
        - Orgs Setting
  "/api/v1/orgs/{org_id}/setting/blacklist":
    delete:
      description: Delete Org Blacklist Station Clients
      operationId: deleteOrgClientsBlocklist
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgClientsBlocklist
      tags:
        - Orgs Setting
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |
        Create Org Blacklist Client List. 

        If there is already a blacklist, this API will replace it with the new one. 

        Max number of blacklist clients is 1000. 

        Retrieve the current blacklisted clients from `blacklist_url` under Org:Setting
      operationId: createOrgClientsBlocklist
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 18-65-90-de-f4-c6
                    - 84-89-ad-5d-69-0d
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/MacsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgClientsBlocklist
      tags:
        - Orgs Setting
  "/api/v1/orgs/{org_id}/setting/cradlepoint/setup":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: This sets up cradlepoint webhooks to send events to Mist
      operationId: setupOrgCradlepointConnectionToMist
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              properties:
                cp_api_id:
                  example: 84446d61-2206-4ea5-855a-0043f980be54
                  type: string
                cp_api_key:
                  example: 79c329da9893e34099c7d8ad5cb9c941
                  type: string
                ecm_api_id:
                  example: 73446d61-2206-4ea5-855a-0043f980be62
                  type: string
                ecm_api_key:
                  example: 68b329da9893e34099c7d8ad5cb9c9405
                  type: string
              type: object
              x-examples:
                Example 1:
                  cp_api_id: 84446d61-2206-4ea5-855a-0043f980be54
                  cp_api_key: 79c329da9893e34099c7d8ad5cb9c941
                  ecm_api_id: 73446d61-2206-4ea5-855a-0043f980be62
                  ecm_api_key: 68b329da9893e34099c7d8ad5cb9c9405
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: setupOrgCradlepointConnectionToMist
      tags:
        - Orgs Devices Others
    put:
      description: This updates the sets up of cradlepoint webhooks to send events to Mist
      operationId: updateOrgCradlepointConnectionToMist
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  cp_api_id: 84446d61-2206-4ea5-855a-0043f980be54
                  cp_api_key: 79c329da9893e34099c7d8ad5cb9c941
                  ecm_api_id: 73446d61-2206-4ea5-855a-0043f980be62
                  ecm_api_key: 68b329da9893e34099c7d8ad5cb9c9405
            schema:
              properties:
                cp_api_id:
                  type: string
                cp_api_key:
                  type: string
                ecm_api_id:
                  type: string
                ecm_api_key:
                  type: string
              type: object
              x-examples:
                Example 1:
                  cp_api_id: 84446d61-2206-4ea5-855a-0043f980be54
                  cp_api_key: 79c329da9893e34099c7d8ad5cb9c941
                  ecm_api_id: 73446d61-2206-4ea5-855a-0043f980be62
                  ecm_api_key: 68b329da9893e34099c7d8ad5cb9c9405
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgCradlepointConnectionToMist
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/setting/cradlepoint/sync":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: This syncs cradlepoint devices with Mist. We’ll also attempt to use the LLDP data from cradlepoint to identify the linkage against Mist Site / Device
      operationId: syncOrgCradlepointRouters
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: syncOrgCradlepointRouters
      tags:
        - Orgs Devices Others
  "/api/v1/orgs/{org_id}/setting/juniper/link_accounts":
    parameters:
      - in: path
        name: org_id
        required: true
        schema:
          example: 000000ab-00ab-00ab-00ab-0000000000ab
          format: uuid
          type: string
    post:
      description: Link Juniper Accounts
      operationId: linkOrgToJuniperJuniperAccount
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  password: string
                  username: string
            schema:
              properties:
                password:
                  type: string
                username:
                  type: string
              type: object
              x-examples:
                example-1:
                  password: password
                  username: john@nmo.com
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    account:
                      linked_by: John Smith (john@abccorp.com)
                      name: ABC Corp
              schema:
                properties:
                  account:
                    properties:
                      linked_by:
                        type: string
                      name:
                        type: string
                    type: object
                type: object
                x-examples:
                  example-1:
                    account:
                      linked_by: John Smith (john@abccorp.com)
                      name: ABC Corp
          description: account linked
        "400":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    detail: Account[ABC Corp] already linked
              schema:
                properties:
                  detail:
                    type: string
                type: object
                x-examples:
                  example-1:
                    detail: Account[ABC Corp] already linked
          description: account already linked
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: linkOrgToJuniperJuniperAccount
      tags:
        - Orgs
  "/api/v1/orgs/{org_id}/setting/juniper/linked_account":
    delete:
      description: Unlink Juniper Customer ID
      operationId: unlinkOrgFromJuniperCustomerId
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  account_name: ABC Corp
            schema:
              properties:
                account_name:
                  example: ABC Corp
                  type: string
                linked_by:
                  description: required only if there are duplicate account_names
                  example: John Smith (john@abccorp.com)
                  type: string
              required:
                - account_name
              type: object
              x-examples:
                example-1:
                  account_name: ABC Corp
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unlinkOrgFromJuniperCustomerId
      tags:
        - Orgs
    parameters:
      - in: path
        name: org_id
        required: true
        schema:
          example: 000000ab-00ab-00ab-00ab-0000000000ab
          format: uuid
          type: string
  "/api/v1/orgs/{org_id}/setting/pcap_bucket/setup":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Provide Customer Bucket Name

        Setting up Custom PCAP Bucket Involves the following:
        * provide the bucket name
        * we’ll attempt to write a file MIST_TOKEN
        * you have to verify the ownership of the bucket by providing the content of the MIST_TOKEN
      operationId: setOrgCustomBucket
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  bucket: company-private-pcap
            schema:
              properties:
                bucket:
                  type: string
              required:
                - bucket
              type: object
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                Failed:
                  value:
                    bucket: company-private-pcap
                    detail: failed to write bucket - 403 AccessDenied
                Success:
                  value: {}
              schema:
                properties:
                  bucket:
                    type: string
                  detail:
                    type: string
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: setOrgCustomBucket
      tags:
        - Orgs Setting
  "/api/v1/orgs/{org_id}/setting/pcap_bucket/verify":
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Verify Customer PCAP Bucket

        **Note**: If successful, a “VERIFIED” file will be created in the bucket
      operationId: verifyOrgCustomBucket
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  bucket: company-private-pcap
                  verify_token: eyJhbGciOiJIUzI1J9.eyJzdWIiOiIxMjM0joiMjgxOG5MDIyfQ.2rzcRvMA3Eg09NnjCAC-1EWMRtxAnFDM
            schema:
              properties:
                bucket:
                  type: string
                verify_token:
                  type: string
              required:
                - bucket
                - verify_token
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: verifyOrgCustomBucket
      tags:
        - Orgs Setting
  "/api/v1/orgs/{org_id}/setting/zscaler/setup":
    delete:
      description: |
        To delete Zscaler credential
      operationId: deleteOrgZscalerCredential
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgZscalerCredential
      tags:
        - Orgs Devices Zscaler
    get:
      description: To get Zscaler credential
      operationId: getOrgZscalerCredential
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    cloud_name: zscalerbeta.net
                    partner_key: abcd12cK3JvrZc
                    username: john@abc.com
              schema:
                properties:
                  cloud_name:
                    type: string
                  partner_key:
                    type: string
                  username:
                    type: string
                type: object
                x-examples:
                  Example 1:
                    cloud_name: zscalerbeta.net
                    partner_key: abcd12cK3JvrZc
                    username: john@abc.com
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgZscalerCredential
      tags:
        - Orgs Devices Zscaler
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |
        To setup Zscaler credential
      operationId: setupOrgZscalerCredential
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  cloud_name: zscalerbeta.net
                  partner_key: K35vrZcK3JvrZc
                  password: foryoureyesonly
                  username: john@abc.com
            schema:
              properties:
                cloud_name:
                  type: string
                partner_key:
                  type: string
                password:
                  type: string
                username:
                  type: string
              type: object
              x-examples:
                Example 1:
                  cloud_name: zscalerbeta.net
                  partner_key: K35vrZcK3JvrZc
                  password: foryoureyesonly
                  username: john@abc.com
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: setupOrgZscalerCredential
      tags:
        - Orgs Devices Zscaler
    put:
      description: update Zscaler credential
      operationId: udpateOrgZscalerCredential
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  partner_key: abcd12cK3JvrZc
            schema:
              properties:
                cloud_name:
                  type: string
                partner_key:
                  type: string
                password:
                  type: string
                username:
                  type: string
              type: object
              x-examples:
                Example 1:
                  cloud_name: zscalerbeta.net
                  partner_key: K35vrZcK3JvrZc
                  password: foryoureyesonly
                  username: john@abc.com
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: udpateOrgZscalerCredential
      tags:
        - Orgs Devices Zscaler
  "/api/v1/orgs/{org_id}/setting/{app_name}/link":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - description: "OAuth application name (Example : zoom, teams, etc..)"
        in: path
        name: app_name
        required: true
        schema:
          type: string
  "/api/v1/orgs/{org_id}/setting/{app_name}/link_accounts":
    delete:
      description: Delete Org Level OAuth Application Authorization With Mist Portal
      operationId: deleteOrgOauthAppAuthorization
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  account_id: iojzXIJWEuiD73ZvydOfg
            schema:
              properties:
                account_id:
                  description: Linked app(zoom/teams) account id
                  type: string
              required:
                - account_id
              type: object
              x-examples:
                Example 1:
                  account_id: iojzXIJWEuiD73ZvydOfg
      responses:
        "200":
          description: Successful
        "400":
          description: Unsuccessful
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgOauthAppAuthorization
      tags:
        - Orgs OAuth
    get:
      description: Get Org Level OAuth Application Linked Status
      operationId: getOrgOauthAppLinkedStatus
      parameters:
        - description: Mist portal url to which backend needs to redirect after succesful OAuth authorization. **Required** to get the `authorization_url`
          in: query
          name: forward
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/OauthAppLinkStatus"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgOauthAppLinkedStatus
      tags:
        - Orgs OAuth
    parameters:
      - $ref: "#/components/parameters/org_id"
      - description: "OAuth application name (Example : zoom, teams, etc..)"
        in: path
        name: app_name
        required: true
        schema:
          type: string
  "/api/v1/orgs/{org_id}/sitegroups":
    get:
      description: Get List of Org Site Groups
      operationId: listOrgSiteGroups
      responses:
        "200":
          $ref: "#/components/responses/SitegroupsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSiteGroups
      tags:
        - Orgs Sitegroups
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Site Group
      operationId: createOrgSiteGroup
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
            schema:
              $ref: "#/components/schemas/sitegroup"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sitegroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSiteGroup
      tags:
        - Orgs Sitegroups
  "/api/v1/orgs/{org_id}/sitegroups/{sitegroup_id}":
    delete:
      description: Delete Org Site Group
      operationId: deleteOrgSiteGroup
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgSiteGroup
      tags:
        - Orgs Sitegroups
    get:
      description: Get Org Site Group
      operationId: getOrgSiteGroup
      responses:
        "200":
          $ref: "#/components/responses/Sitegroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSiteGroup
      tags:
        - Orgs Sitegroups
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sitegroup_id"
    put:
      description: Update Org Site Group
      operationId: updateOrgSiteGroup
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
            schema:
              properties:
                id:
                  format: uuid
                  type: string
                name:
                  type: string
              required:
                - id
                - name
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sitegroup"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSiteGroup
      tags:
        - Orgs Sitegroups
  "/api/v1/orgs/{org_id}/sites":
    get:
      description: Get List of Org Sites
      operationId: listOrgSites
      parameters:
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
      responses:
        "200":
          $ref: "#/components/responses/SitesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSites
      tags:
        - Orgs Sites
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Site
      operationId: createOrgSite
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
                  alarmtemplate_id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
                  apporttemplate_id: string
                  aptemplate_id: 16bdf952-ade2-4491-80b0-85ce506c760b
                  country_code: US
                  gatewaytemplate_id: 6f9b2e75-9b2f-b5ae-81e3-e14c76f1a90f
                  latlng:
                    lat: 37.295833
                    lng: -122.032946
                  name: Mist Office
                  networktemplate_id: 12ae9bd2-e0ab-107b-72e8-a7a005565ec2
                  notes: string
                  rftemplate_id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
                  secpolicy_id: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
                  sitegroup_ids:
                    - 497f6eca-6276-4997-bfeb-53cbbbba6f08
                  timezone: America/Los_Angeles
            schema:
              $ref: "#/components/schemas/site"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Site"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSite
      tags:
        - Orgs Sites
  "/api/v1/orgs/{org_id}/sites/count":
    get:
      description: Count Sites
      operationId: countOrgSites
      parameters:
        - in: query
          name: distinct
          schema:
            default: id
            enum:
              - analytic_enabled
              - app_waking
              - asset_enabled
              - auto_upgrade_enabled
              - auto_upgrade_version
              - country_code
              - honeypot_enabled
              - id
              - locate_unconnected
              - mesh_enabled
              - name
              - rogue_enabled
              - remote_syslog_enabled
              - rtsa_enabled
              - vna_enabled
              - wifi_enabled
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgSites
      tags:
        - Orgs Sites
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/sites/search":
    get:
      description: Search Sites
      operationId: searchOrgSites
      parameters:
        - description: if Advanced Analytic feature is enabled
          in: query
          name: analytic_enabled
          schema:
            type: boolean
        - description: if App Waking feature is enabled
          in: query
          name: app_waking
          schema:
            type: boolean
        - description: if Asset Tracking is enabled
          in: query
          name: asset_enabled
          schema:
            type: boolean
        - description: if Auto Upgrade feature is enabled
          in: query
          name: auto_upgrade_enabled
          schema:
            type: boolean
        - description: if Auto Upgrade feature is enabled
          in: query
          name: auto_upgrade_version
          schema:
            type: string
        - description: site country code
          in: query
          name: country_code
          schema:
            type: string
        - description: if Honeypot detection is enabled
          in: query
          name: honeypot_enabled
          schema:
            type: boolean
        - description: site id
          in: query
          name: id
          schema:
            type: string
        - description: if unconnected client are located
          in: query
          name: locate_unconnected
          schema:
            type: boolean
        - description: if Mesh feature is enabled
          in: query
          name: mesh_enabled
          schema:
            type: boolean
        - description: site name
          in: query
          name: name
          schema:
            type: string
        - description: if Rogue detection is enabled
          in: query
          name: rogue_enabled
          schema:
            type: boolean
        - description: if Remote Syslog is enabled
          in: query
          name: remote_syslog_enabled
          schema:
            type: boolean
        - description: if managed mobility feature is enabled
          in: query
          name: rtsa_enabled
          schema:
            type: boolean
        - description: if Virtual Network Assistant is enabled
          in: query
          name: vna_enabled
          schema:
            type: boolean
        - description: if WIFI feature is enabled
          in: query
          name: wifi_enabled
          schema:
            type: boolean
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/SitesSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgSites
      tags:
        - Orgs Sites
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/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 a file, an optional json, and an optional csv, to create floorplan, assign matching inventory to specific site, place ap if name or mac matches

        #### Request

        ```
        "json": a JSON string describing your upload
        "file": a binary file
        ```
      operationId: importOrgMapToSite
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                csv:
                  format: binary
                  type: string
                file:
                  format: binary
                  type: string
              type: object
        description: |-
          a JSON string, site id required, vendor option: ekahau, ibwave, etc., import_all_floorplans: optional, default: false, import_height: optional, default: true, import_orientation: optional, default: true
          "file": a binary file, option: .esx
          "csv": a csv file for ap name mapping, optional
      responses:
        "200":
          $ref: "#/components/responses/MapImport"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importOrgMapToSite
      tags:
        - Orgs Sites
  "/api/v1/orgs/{org_id}/sitetemplates":
    get:
      description: Get List of Org Site Templates
      operationId: listOrgSiteTemplates
      responses:
        "200":
          $ref: "#/components/responses/SiteTemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSiteTemplates
      tags:
        - Orgs Site Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Site Template
      operationId: createOrgSiteTemplates
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sitetemplate"
      responses:
        "200":
          $ref: "#/components/responses/SiteTemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSiteTemplates
      tags:
        - Orgs Site Templates
  "/api/v1/orgs/{org_id}/sitetemplates/{sitetemplate_id}":
    delete:
      description: Delete Org Site Template
      operationId: deleteOrgSiteTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgSiteTemplate
      tags:
        - Orgs Site Templates
    get:
      description: Get Org Site Template
      operationId: getOrgSiteTemplate
      responses:
        "200":
          $ref: "#/components/responses/SiteTemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSiteTemplate
      tags:
        - Orgs Site Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sitetemplate_id"
    put:
      description: Update Org Site Template
      operationId: updateOrgSiteTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sitetemplate"
      responses:
        "200":
          $ref: "#/components/responses/SiteTemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSiteTemplate
      tags:
        - Orgs Site Templates
  "/api/v1/orgs/{org_id}/ssoroles":
    get:
      description: Get List of Org SSO Roles
      operationId: listOrgSsoRoles
      responses:
        "200":
          $ref: "#/components/responses/SsorolesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSsoRoles
      tags:
        - Orgs SSO Roles
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org SSO Role
      operationId: createOrgSsoRole
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/ssorole"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ssorole"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSsoRole
      tags:
        - Orgs SSO Roles
  "/api/v1/orgs/{org_id}/ssoroles/{ssorole_id}":
    delete:
      description: Delete Org SSO Role
      operationId: deleteOrgSsoRole
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgSsoRole
      tags:
        - Orgs SSO Roles
    get:
      description: Get Org SSO Role Details
      operationId: getOrgSsoRole
      responses:
        "200":
          $ref: "#/components/responses/Ssorole"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSsoRole
      tags:
        - Orgs SSO Roles
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/ssorole_id"
    put:
      description: Update Org SSO Role
      operationId: updateOrgSsoRole
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/ssorole"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ssorole"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSsoRole
      tags:
        - Orgs SSO Roles
  "/api/v1/orgs/{org_id}/ssos":
    get:
      description: Get List of Org SSO Configuration
      operationId: listOrgSsos
      responses:
        "200":
          $ref: "#/components/responses/SsosArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSsos
      tags:
        - Orgs SSO
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org SSO Configuration
      operationId: createOrgSso
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  custom_logout_url: string
                  idp_cert: string
                  idp_sign_algo: string
                  idp_sso_url: string
                  ignore_unmatched_roles: true
                  issuer: string
                  name: string
                  nameid_format: email
            schema:
              $ref: "#/components/schemas/sso"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sso"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgSso
      tags:
        - Orgs SSO
  "/api/v1/orgs/{org_id}/ssos/{sso_id}":
    delete:
      description: Delete Org SSO Configuration
      operationId: deleteOrgSso
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgSso
      tags:
        - Orgs SSO
    get:
      description: Get Org SSO Configuration Details
      operationId: getOrgSso
      responses:
        "200":
          $ref: "#/components/responses/Sso"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSso
      tags:
        - Orgs SSO
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sso_id"
    put:
      description: Update Org SSO Configuration
      operationId: updateOrgSso
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sso"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Sso"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgSso
      tags:
        - Orgs SSO
  "/api/v1/orgs/{org_id}/ssos/{sso_id}/failures":
    get:
      description: Get List of Org SSO Latest Failures
      operationId: listOrgSsoLatestFailures
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/SsoLatestFailures"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSsoLatestFailures
      tags:
        - Orgs SSO
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/orgs/{org_id}/ssos/{sso_id}/metadata":
    get:
      description: Get Org SSO SAML Metadata
      operationId: getOrgSsoSamlMetadata
      responses:
        "200":
          $ref: "#/components/responses/SsoSamlMetadata"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSsoSamlMetadata
      tags:
        - Orgs SSO
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/orgs/{org_id}/ssos/{sso_id}/metadata.xml":
    get:
      description: |-
        Download Org SSO SAML Metdata

        Example of metadata.xml:
        ```xml
        <?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://api.mist.com/api/v1/saml/5hdF5g/login" validUntil="2027-10-12T21:59:01Z" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
                <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/5hdF5g/logout" />
                <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
                <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/5hdF5g/login" index="0" isDefault="true"/>
                <md:AttributeConsumingService index="0">
                    <md:ServiceName xml:lang="en-US">Mist</md:ServiceName>
                    <md:RequestedAttribute Name="Role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="true"/>
                    <md:RequestedAttribute Name="FirstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="false"/>
                    <md:RequestedAttribute Name="LastName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" isRequired="false"/>
                </md:AttributeConsumingService>
            </md:SPSSODescriptor>
        </md:EntityDescriptor>
        ```
      operationId: downloadOrgSsoSamlMetadata
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: downloadOrgSsoSamlMetadata
      tags:
        - Orgs SSO
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/sso_id"
  "/api/v1/orgs/{org_id}/ssr/upgrade":
    get:
      description: Get List of Org SSR Upgrades
      operationId: listOrgSsrUpgrades
      responses:
        "200":
          $ref: "#/components/responses/SsrUpgradesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgSsrUpgrades
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Upgrade Org SSRs
      operationId: upgradeOrgSsrs
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  channel: stable
                  device_ids:
                    - 00000000-0000-0000-1000-5c5b3500001f
                    - 00000000-0000-0000-1000-5c5b35000020
                  strategy: big_bang
                  version: 5.3.0-93
            schema:
              description: ""
              properties:
                channel:
                  default: stable
                  description: upgrade channel to follow
                  enum:
                    - stable
                    - beta
                    - alpha
                  minLength: 1
                  type: string
                device_ids:
                  description: list of 128T device IDs to upgrade
                  items:
                    format: uuid
                    type: string
                  type: array
                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:
                  default: big_bang
                  description: |-
                    * `big_bang`: upgrade all at once
                    * `serial`: one at a time
                  enum:
                    - big_bang
                    - serial
                  minLength: 1
                  type: string
                version:
                  description: 128T firmware version to upgrade (e.g. 5.3.0-93)
                  minLength: 1
                  type: string
              required:
                - device_ids
              type: object
              x-examples:
                example-1:
                  channel: stable
                  device_ids:
                    - 00000000-0000-0000-1000-5c5b3500001f
                    - 00000000-0000-0000-1000-5c5b35000020
                  strategy: big_bang
                  version: 5.3.0-93
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/SsrUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeOrgSsrs
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/ssr/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: cancelOrgSsrUpgrade
      requestBody:
        content:
          application/json:
            schema:
              properties: {}
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: cancelOrgSsrUpgrade
      tags:
        - Orgs Devices Upgrades
  "/api/v1/orgs/{org_id}/ssr/versions":
    get:
      description: Get Org SSD Ugprade information
      operationId: getOrgSsrUpgradeInfo
      parameters:
        - in: query
          name: channel
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - _version: 128T-5.3.1-17.el7.x86_64
                      default: true
                      package: 128T
                      version: 5.3.1-17
                    - _version: 128T-wheeljack-0.1.0-1212.x86_64
                      package: 128T-wheeljack
                      version: 0.1.0-1212
              schema:
                description: ""
                items:
                  properties:
                    _version:
                      minLength: 1
                      type: string
                    default:
                      type: boolean
                    package:
                      minLength: 1
                      type: string
                    version:
                      minLength: 1
                      type: string
                  required:
                    - package
                    - version
                    - _version
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - _version: 128T-5.3.1-17.el7.x86_64
                      default: true
                      package: 128T
                      version: 5.3.1-17
                    - _version: 128T-wheeljack-0.1.0-1212.x86_64
                      package: 128T-wheeljack
                      version: 0.1.0-1212
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgSsrUpgradeInfo
      tags:
        - Orgs Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats":
    get:
      description: Get Org Stats
      operationId: getOrgStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/OrgStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgStats
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/assets":
    get:
      description: Get List of Org Assets Stats
      operationId: listOrgAssetsStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AssetsArrayStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgAssetsStats
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/assets/count":
    get:
      description: Count Org Assets
      operationId: countOrgAssetsByDistanceField
      parameters:
        - in: query
          name: distinct
          schema:
            enum:
              - site_id
              - mac
              - map_id
              - ibeacon_uuid
              - ibeacon_major
              - ibeacon_minor
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgAssetsByDistanceField
      tags:
        - Orgs Assets
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/assets/search":
    get:
      description: Search for Org Assets
      operationId: searchOrgAssets
      parameters:
        - in: query
          name: site_id
          schema:
            format: uuid
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: device_name
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - in: query
          name: map_id
          schema:
            format: uuid
            type: string
        - in: query
          name: ibeacon_uuid
          schema:
            format: uuid
            type: string
        - in: query
          name: ibeacon_major
          schema:
            type: string
        - in: query
          name: ibeacon_minor
          schema:
            type: string
        - in: query
          name: eddystone_uid_namespace
          schema:
            type: string
        - in: query
          name: eddystone_uid_instance
          schema:
            type: string
        - in: query
          name: eddystone_url
          schema:
            type: string
        - in: query
          name: ap_mac
          schema:
            type: string
        - in: query
          name: beam
          schema:
            type: integer
        - in: query
          name: rssi
          schema:
            type: integer
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AssetsArrayStatsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgAssets
      tags:
        - Orgs Assets
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/bgp_peers/count":
    get:
      description: Count Org BGP Stats
      operationId: countOrgBgpStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: mac
                    end: 1619519007.8000295
                    limit: 10
                    results:
                      - count: 2
                        mac: 02000111d2dc
                    start: 1619518707.800029
                    total: 1
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: number
                  limit:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        mac:
                          type: string
                      type: object
                    type: array
                  start:
                    type: number
                  total:
                    type: integer
                type: object
                x-examples:
                  example-1:
                    distinct: mac
                    end: 1619519007.8000295
                    limit: 10
                    results:
                      - count: 2
                        mac: 02000111d2dc
                    start: 1619518707.800029
                    total: 1
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgBgpStats
      tags:
        - Orgs Devices Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/bgp_peers/search":
    get:
      description: Search Org BGP Stats
      operationId: searchOrgBgpStats
      responses:
        "200":
          $ref: "#/components/responses/BgpStatsArraySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgBgpStats
      tags:
        - Orgs Devices Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/devices":
    get:
      description: |-
        Get List of Org Devices stats
        This API renders some high-level device stats, pagination is assumed and returned in response header (as the response is an array)
      operationId: listOrgDevicesStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
              - all
            type: string
        - in: query
          name: status
          schema:
            default: all
            enum:
              - all
              - connected
              - disconnected
            type: string
        - in: query
          name: site_id
          schema:
            format: uuid
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - description: EVPN Topology ID
          in: query
          name: evpntopo_id
          schema:
            format: uuid
            type: string
        - description: if `evpn_unused`==`true`, find EVPN eligible switches which don’t belong to any EVPN Topology yet
          in: query
          name: evpn_unused
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/DevicesArrayStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgDevicesStats
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/mxedges":
    get:
      description: Get List of Org MxEdge Stats
      operationId: listOrgMxEdgesStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - description: filter for site level mist edges
          in: query
          name: for_site
          schema:
            default: "false"
            enum:
              - "true"
              - "false"
              - any
            type: string
      responses:
        "200":
          $ref: "#/components/responses/MxedgesArrayStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgMxEdgesStats
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/mxedges/{mxedge_id}":
    get:
      description: Get Org MxEdge Details Stats
      operationId: getOrgMxEdgeStats
      responses:
        "200":
          $ref: "#/components/responses/MxedgeStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgMxEdgeStats
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/mxedge_id"
  "/api/v1/orgs/{org_id}/stats/otherdevices/{device_mac}":
    get:
      description: Get Otherdevice Stats
      operationId: getOrgOtherDeviceStats
      responses:
        "200":
          $ref: "#/components/responses/DeviceOtherStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgOtherDeviceStats
      tags:
        - Orgs Devices Others
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/device_mac"
  "/api/v1/orgs/{org_id}/stats/ports/search":
    get:
      description: Search Switch / Gateway Ports
      operationId: searchOrgSwOrGwPorts
      parameters:
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Output errors
          in: query
          name: tx_errors
          schema:
            type: integer
        - description: Input errors
          in: query
          name: rx_errors
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: Limit on number of dynamically learned macs
          in: query
          name: mac_limit
          schema:
            type: integer
        - description: Number of mac addresses in the forwarding table
          in: query
          name: mac_count
          schema:
            type: integer
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: if `up`==`true` && has Authenticator role
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1513177200
                    limit: 10
                    results:
                      - mac: 5c4527a96580
                        neighbor_mac: 64d814353400
                        neighbor_port_desc: GigabitEthernet1/0/21
                        neighbor_system_name: CORP-D-SW-2
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_disabled: true
                        port_id: me0
                        port_mac: 5c4527a96580
                        rx_bytes: 4563443626
                        rx_pkts: 30360265
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bytes: 11299516780
                        tx_pkts: 14610886
                        up: true
                      - full_duplex: true
                        mac: 0c8126c6ff6c
                        neighbor_mac: 5c5b350eb361
                        neighbor_port_desc: ETH0
                        neighbor_system_name: kevinsap
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_mode: 802.3at
                        poe_on: true
                        port_id: ge-0/0/0
                        port_mac: 0c8126c6ff6f
                        power_draw: 5.4
                        rx_bps: 1176
                        rx_bytes: 2628451
                        rx_pkts: 11829
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bps: 14264
                        tx_bytes: 96810192
                        tx_pkts: 492176
                        up: true
                    start: 1511967600
                    total: 100
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      $ref: "#/components/schemas/stats_switch_port"
                    type: array
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgSwOrGwPorts
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/switch_ports/count":
    get:
      description: Count by Distinct Attributes of Switch/Gateway Ports
      operationId: countOrgByDisctinctAttributesOfSwitchPorts
      parameters:
        - description: port_id, port_mac, full_duplex, mac, neighbor_macneighbor_port_desc, neighbor_system_name, poe_disabled, poe_mode, poe_on, speed, up
          in: query
          name: distinct
          schema:
            default: mac
            enum:
              - port_id
              - port_mac
              - full_duplex
              - mac
              - neighbor_mac
              - neighbor_port_desc
              - neighbor_system_name
              - poe_disabled
              - poe_mode
              - poe_on
              - speed
              - up
            type: string
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: if `up`==`true`
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: mac
                    end: 1513177200
                    limit: 100
                    results:
                      - count: 217
                        mac: "112233445566"
                      - count: 35
                        mac: "001122334455"
                    start: 1511967600
                    total: 20
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: integer
                  limit:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        mac:
                          type: string
                      required:
                        - count
                        - mac
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgByDisctinctAttributesOfSwitchPorts
      tags:
        - Orgs Stats
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/tunnels/count":
    get:
      description: Count Mist Tunnels Stats
      operationId: countOrgTunnelsStats
      parameters:
        - description: |-
            - If `type`==`wxtunnel`: wxtunnel_id / ap / remote_ip / remote_port / state / mxedge_id / mxcluster_id / site_id / peer_mxedge_id; default is wxtunnel_id 
            - If `type`==`wan`: mac / site_id / node / peer_ip / peer_host/ ip / tunnel_name / protocol / auth_algo / encrypt_algo / ike_version / last_event / up
          in: query
          name: distinct
          schema:
            enum:
              - auth_algo
            type: string
        - in: query
          name: type
          schema:
            default: wxtunnel
            enum:
              - wxtunnel
              - wan
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgTunnelsStats
      tags:
        - Orgs Stats Tunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/tunnels/search":
    get:
      description: Search Org Tunnels Stats
      operationId: searchOrgTunnelsStats
      parameters:
        - description: if `type`==`wxtunnel`
          in: query
          name: mxcluster_id
          schema:
            type: string
        - in: query
          name: site_id
          schema:
            type: string
        - description: if `type`==`wxtunnel`
          in: query
          name: wxtunnel_id
          schema:
            type: string
        - description: if `type`==`wxtunnel`
          in: query
          name: ap
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: mac
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: node
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: peer_ip
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: peer_host
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: ip
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: tunnel_name
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: protocol
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: auth_algo
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: encrypt_algo
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: ike_version
          schema:
            type: string
        - description: if `type`==`wan`
          in: query
          name: up
          schema:
            type: string
        - in: query
          name: type
          schema:
            default: wxtunnel
            enum:
              - wxtunnel
              - wan
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/TunnelsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgTunnelsStats
      tags:
        - Orgs Stats Tunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/vpn_peers/count":
    get:
      description: Count Org Peer Path Statgs
      operationId: countOrgPeerPathStats
      parameters:
        - in: query
          name: distinct
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgPeerPathStats
      tags:
        - Orgs VPNs
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/stats/vpn_peers/search":
    get:
      description: Search Org Peer Path Stats
      operationId: searchOrgPeerPathStats
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1619518989.4989712
                    limit: 10
                    results:
                      - auth_algo: hmac-sha1-96
                        enc_algo: aes-cbc-128
                        ike_version: "1"
                        is_active: true
                        last_seen: 1619518709.222
                        mac: 020001c04668
                        org_id: 0c160b7f-1027-4cd1-923b-744534c4b070
                        peer_mac: 020001367edd
                        peer_port_id: DC_Internet
                        peer_site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        port_id: Lte
                        site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        type: svr
                        up: true
                        uptime: 1527128046
                      - is_active: true
                        last_seen: 1619518709.222
                        latency: 91
                        mac: 020001c04668
                        mos: 436
                        mtu: 1500
                        org_id: 0c160b7f-1027-4cd1-923b-744534c4b070
                        peer_mac: 020001367edd
                        peer_port_id: DC_Internet
                        peer_router_name: RIDCBBP1
                        peer_site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        port_id: Lte
                        router_name: RIST01544AP1
                        site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        type: svr
                        up: true
                        uptime: 1527128046
                    start: 1619518689.4989705
                    total: 2
              schema:
                properties:
                  end:
                    type: number
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      properties:
                        is_active:
                          description: Redundancy status of the associated interface
                          type: boolean
                        last_seen:
                          type: number
                        latency:
                          type: number
                        mac:
                          description: router mac address
                          minLength: 1
                          type: string
                        mos:
                          type: number
                        mtu:
                          type: integer
                        org_id:
                          minLength: 1
                          type: string
                        peer_mac:
                          description: peer router mac address
                          minLength: 1
                          type: string
                        peer_port_id:
                          description: peer router device interface
                          minLength: 1
                          type: string
                        peer_router_name:
                          minLength: 1
                          type: string
                        peer_site_id:
                          minLength: 1
                          type: string
                        port_id:
                          description: router device interface
                          minLength: 1
                          type: string
                        router_name:
                          minLength: 1
                          type: string
                        site_id:
                          minLength: 1
                          type: string
                        type:
                          description: "`ipsec`for SRX, `svr` for 128T"
                          minLength: 1
                          type: string
                        up:
                          type: boolean
                        uptime:
                          type: integer
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - results
                  - start
                  - total
                type: object
                x-examples:
                  example-1:
                    end: 1619518989.4989712
                    limit: 10
                    results:
                      - is_active: true
                        last_seen: 1619518709.222
                        latency: 91
                        mac: 020001c04668
                        mos: 436
                        mtu: 1500
                        org_id: 0c160b7f-1027-4cd1-923b-744534c4b070
                        peer_mac: 020001367edd
                        peer_port_id: DC_Internet
                        peer_router_name: RIDCBBP1
                        peer_site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        port_id: Lte
                        router_name: RIST01544AP1
                        site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        type: svr
                        up: true
                        uptime: 1527128046
                      - auth_algo: hmac-sha1-96
                        enc_algo: aes-cbc-128
                        ike_version: "1"
                        is_active: true
                        last_seen: 1619518709.222
                        mac: 020001c04668
                        org_id: 0c160b7f-1027-4cd1-923b-744534c4b070
                        peer_mac: 020001367edd
                        peer_port_id: DC_Internet
                        peer_site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        port_id: Lte
                        site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                        type: svr
                        up: true
                        uptime: 1527128046
                    start: 1619518689.4989705
                    total: 1
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgPeerPathStats
      tags:
        - Orgs VPNs
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/subscriptions":
    delete:
      description: |-
        Unsubscribe from Org Alarms/Reports
        Subscriptions define how Org Alarms/Reports are delivered to whom
      operationId: unsubscribeOrgAlarmsReports
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unsubscribeOrgAlarmsReports
      tags:
        - Orgs Subscriptions
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Subscribe to Org Alarms/Reports
        Subscriptions define how Org Alarms/Reports are delivered to whom
      operationId: subscribeOrgAlarmsReports
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: subscribeOrgAlarmsReports
      tags:
        - Orgs Subscriptions
  "/api/v1/orgs/{org_id}/templates":
    get:
      description: Get List of Org Templates
      operationId: listOrgTemplates
      responses:
        "200":
          $ref: "#/components/responses/TemplatesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgTemplates
      tags:
        - Orgs Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Template
      operationId: createOrgTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/template"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Template"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgTemplate
      tags:
        - Orgs Templates
  "/api/v1/orgs/{org_id}/templates/{template_id}":
    delete:
      description: Delete Org Template
      operationId: deleteOrgTemplate
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgTemplate
      tags:
        - Orgs Templates
    get:
      description: Get Org Template Details
      operationId: getOrgTemplate
      responses:
        "200":
          $ref: "#/components/responses/Template"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgTemplate
      tags:
        - Orgs Templates
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/template_id"
    put:
      description: Update Org Template
      operationId: updateOrgTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/template"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Template"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgTemplate
      tags:
        - Orgs Templates
  "/api/v1/orgs/{org_id}/templates/{template_id}/clone":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/template_id"
    post:
      description: Clone Org Template
      operationId: cloneOrgTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: Cloned
            schema:
              properties:
                name:
                  type: string
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Template"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: cloneOrgTemplate
      tags:
        - Orgs Templates
  "/api/v1/orgs/{org_id}/tickets":
    get:
      description: Get List of Tickets of an Org
      operationId: listOrgTickets
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/TicketsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgTickets
      tags:
        - Orgs Tickets
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create a support ticket
      operationId: createOrgTicket
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  comment: string
                  subject: string
                  type: question
            schema:
              $ref: "#/components/schemas/ticket"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ticket"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgTicket
      tags:
        - Orgs Tickets
  "/api/v1/orgs/{org_id}/tickets/count":
    get:
      description: Count Org Tickets
      operationId: countOrgTickets
      parameters:
        - in: query
          name: distinct
          schema:
            default: status
            enum:
              - status
              - type
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgTickets
      tags:
        - Orgs Tickets
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/tickets/{ticket_id}":
    get:
      description: Get support ticket details
      operationId: getOrgTicket
      responses:
        "200":
          $ref: "#/components/responses/Ticket"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgTicket
      tags:
        - Orgs Tickets
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/ticket_id"
    put:
      description: Update support ticket
      operationId: updateOrgTicket
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  comment: string
                  subject: string
                  type: question
            schema:
              $ref: "#/components/schemas/ticket"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ticket"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgTicket
      tags:
        - Orgs Tickets
  "/api/v1/orgs/{org_id}/tickets/{ticket_id}/comments":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/ticket_id"
    post:
      description: Add Comment to support ticket
      operationId: addOrgTicketComment
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  comment: this is urgent
            schema:
              example:
                comment: this is urgent
              properties:
                comment:
                  type: string
              type: object
          multipart/form-data:
            examples:
              example-1:
                value:
                  comment: string
                  file: string
            schema:
              properties:
                comment:
                  type: string
                file:
                  format: binary
                  type: string
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ticket"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: addOrgTicketComment
      tags:
        - Orgs Tickets
  "/api/v1/orgs/{org_id}/troubleshoot":
    get:
      description: |-
        Troubleshoot sites, devices, clients, and wired clients. See search APIs for device information:
        - [search Device](/#tag/Orgs-Devices/operation/searchOrgDevices)
        - [search Wireless Client](/#tag/Orgs-Devices/operation/searchOrgClientsWireless)
        - [search Wired Client](/#tag/Orgs-Devices/operation/searchOrgClientsWired)

        **NOTE**: requires Marvis subscription license
      operationId: troubleshootOrgClient
      parameters:
        - description: "**required** when troubleshooting device"
          in: query
          name: mac
          schema:
            type: string
        - description: "**required** when troubleshooting site"
          in: query
          name: site_id
          schema:
            format: uuid
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - description: when troubleshooting site, type of network to troubleshoot
          in: query
          name: type
          schema:
            enum:
              - wireless
              - wired
              - wan
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1655151856
                    results:
                      - category: client
                        reason: slow association
                        recommendation: Ensure the IP helper-address is configured on the VLAN interface.
                        text: Clients of the AP had slow association 8% of the time on Bhavabhi and 5 GHz. ...
                    start: 1655065456
              schema:
                properties:
                  end:
                    type: integer
                  results:
                    items:
                      properties:
                        category:
                          type: string
                        reason:
                          type: string
                        recommendation:
                          type: string
                        text:
                          type: string
                      type: object
                    type: array
                  start:
                    type: integer
                type: object
                x-examples:
                  example-1:
                    end: 1655151856
                    results:
                      - category: client
                        reason: slow association
                        recommendation: Ensure the IP helper-address is configured on the VLAN interface.
                        text: Clients of the AP had slow association 8% of the time on Bhavabhi and 5 GHz. ...
                    start: 1655065456
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: troubleshootOrgClient
      tags:
        - Orgs Marvis
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/vpns":
    get:
      description: Get List of Org VPNs
      operationId: listOrgsVpns
      responses:
        "200":
          $ref: "#/components/responses/VpnsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgsVpns
      tags:
        - Orgs VPNs
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org VPN
      operationId: createOrgVpns
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  paths:
                    property1:
                      bfd_profile: broadband
                      ip: string
                    property2:
                      bfd_profile: lte
                      ip: string
            schema:
              $ref: "#/components/schemas/vpn"
      responses:
        "200":
          $ref: "#/components/responses/Vpn"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgVpns
      tags:
        - Orgs VPNs
  "/api/v1/orgs/{org_id}/vpns/{vpn_id}":
    delete:
      description: delete Org Vpn
      operationId: deleteOrgVpn
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgVpn
      tags:
        - Orgs VPNs
    get:
      description: getOrgVpn
      operationId: getOrgVpn
      responses:
        "200":
          $ref: "#/components/responses/Vpn"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgVpn
      tags:
        - Orgs VPNs
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/vpn_id"
    put:
      description: update Org Vpn
      operationId: updateOrgVpn
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: string
                  paths:
                    property1:
                      bfd_profile: broadband
                      ip: string
                    property2:
                      bfd_profile: broadband
                      ip: string
            schema:
              $ref: "#/components/schemas/vpn"
      responses:
        "200":
          $ref: "#/components/responses/Vpn"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgVpn
      tags:
        - Orgs VPNs
  "/api/v1/orgs/{org_id}/webhooks":
    get:
      description: Get List of Org Webhooks
      operationId: listOrgWebhooks
      responses:
        "200":
          $ref: "#/components/responses/WebhooksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgWebhooks
      tags:
        - Orgs Webhooks
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: |-
        Create Org Webhook

        **N.B**. For org webhooks, only device-events/alarms/audits/client-join/client-sessions/device-updowns/mxedge-events Infrastructure topics are supported.
      operationId: createOrgWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/webhook"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgWebhook
      tags:
        - Orgs Webhooks
  "/api/v1/orgs/{org_id}/webhooks/{webhook_id}":
    delete:
      description: Delete Org Webhook
      operationId: deleteOrgWebhook
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWebhook
      tags:
        - Orgs Webhooks
    get:
      description: Get Org Webhook Details
      operationId: getOrgWebhook
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWebhook
      tags:
        - Orgs Webhooks
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/webhook_id"
    put:
      description: Update Org Webhook
      operationId: updateOrgWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/webhook"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWebhook
      tags:
        - Orgs Webhooks
  "/api/v1/orgs/{org_id}/wired_clients/count":
    get:
      description: |-
        Count by Distinct Attributes of Clients

        Note: For list of avaialable `type` values, please refer to [getClientEventsDefinitions](/#tag/Constants/operation/getClientEventsDefinitions)
      operationId: countOrgClientsWired
      parameters:
        - in: query
          name: distinct
          schema:
            default: mac
            enum:
              - port_id
              - vlan
              - mac
              - device_mac
              - site_id
              - type
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countOrgClientsWired
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/wired_clients/search":
    get:
      description: |-
        Search for Wired Clients in org

        Note: For list of avaialable `type` values, please refer to [getClientEventsDefinitions](/#tag/Constants/operation/getClientEventsDefinitions)
      operationId: searchOrgClientsWired
      parameters:
        - description: Site ID
          in: query
          name: site_id
          schema:
            type: string
        - description: device mac
          in: query
          name: device_mac
          schema:
            type: string
        - description: client mac
          in: query
          name: mac
          schema:
            type: string
        - description: port id
          in: query
          name: port_id
          schema:
            type: string
        - description: vlan
          in: query
          name: vlan
          schema:
            type: integer
        - description: ip
          in: query
          name: ip
          schema:
            type: string
        - description: client manufacture
          in: query
          name: manufacture
          schema:
            type: string
        - description: single entry of hostname/mac
          in: query
          name: text
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/WiredClientsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchOrgClientsWired
      tags:
        - Orgs Clients
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/wlans":
    get:
      description: Get List of Org Wlans
      operationId: listOrgWlans
      responses:
        "200":
          $ref: "#/components/responses/WlansArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgWlans
      tags:
        - Orgs Wlans
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org Wlan
      operationId: createOrgWlan
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wlan"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgWlan
      tags:
        - Orgs Wlans
  "/api/v1/orgs/{org_id}/wlans/derived":
    get:
      description: Get Org WLAN Derived
      operationId: getOrgWlanDerived
      parameters:
        - description: whether to resolve SITE_VARS
          example: true
          in: query
          name: resolve
          schema:
            type: boolean
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWlanDerived
      tags:
        - Orgs Wlans
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/wlans/{wlan_id}":
    delete:
      description: Delete Org WLAN
      operationId: deleteOrgWlan
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWlan
      tags:
        - Orgs Wlans
    get:
      description: Get Org Wlan Detail
      operationId: getOrgWLAN
      responses:
        "200":
          $ref: "#/components/responses/WlansArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWLAN
      tags:
        - Orgs Wlans
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wlan_id"
    put:
      description: Update Org Wlan
      operationId: updateOrgWlan
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      port: 0
                      secret: string
                  airwatch:
                    api_key: string
                    console_url: string
                    enabled: true
                    password: string
                    username: string
                  allow_ipv6_ndp: true
                  allow_mdns: true
                  ap_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  app_limit:
                    apps: {}
                    enabled: true
                    wxtag_ids: {}
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 0
                        dst_subnet: string
                        src_subnet: string
                      skype-business-voice:
                        dscp: 0
                    enabled: true
                    others:
                      - dscp: 0
                        dst_subnet: string
                        port_ranges: string
                        protocol: string
                        src_subnet: string
                  apply_to: site
                  arp_filter: true
                  auth:
                    eap_reauth: true
                    enable_mac_auth: true
                    key_idx: 1
                    keys:
                      - string
                    multi_psk_only: true
                    owe: string
                    pairwise:
                      - string
                    private_wlan: true
                    psk: string123
                    type: open
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                    - host: string
                      port: 0
                      secret: string
                  auth_servers_nas_id: string
                  auth_servers_nas_ip: string
                  auth_servers_retries: 0
                  auth_servers_timeout: 0
                  band: string
                  band_steer: true
                  band_steer_force_band5: true
                  block_blacklist_clients: true
                  bonjour:
                    additional_vlan_ids:
                      - 0
                    enabled: true
                    services:
                      $service_name:
                        disable_local: true
                        radius_groups:
                          - string
                        scope: string
                  cisco_cwa:
                    allowed_hostnames:
                      - string
                    allowed_subnets:
                      - string
                    enabled: true
                  client_limit_down: 0
                  client_limit_down_enabled: true
                  client_limit_up: 0
                  client_limit_up_enabled: true
                  coa_servers:
                    - disable_event_timestamp_check: true
                      enabled: true
                      ip: 192.168.1.1
                      port: "3788"
                      secret: string
                  disable_11ax: true
                  disable_uapsd: true
                  disable_wmm: true
                  dns_server_rewrite:
                    enabled: true
                    radius_groups: {}
                  dtim: 0
                  dynamic_psk:
                    default_vlan_id: 1
                    enabled: true
                    source: radius
                    vlan_ids:
                      - 1
                  dynamic_vlan:
                    default_vlan_id: 1
                    enabled: true
                    local_vlan_ids:
                      - 1
                    type: standard
                    vlans: {}
                  enable_wireless_bridging: true
                  enabled: true
                  hide_ssid: true
                  hostname_ie: true
                  hotspot20:
                    enabled: true
                    operators:
                      - string
                    venue_name: string
                  interface: all
                  isolation: true
                  legacy_overds: true
                  limit_bcast: true
                  limit_probe_response: true
                  max_idletime: 60
                  mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  no_static_dns: true
                  no_static_ip: true
                  portal:
                    amazon_client_id: string
                    amazon_client_secret: string
                    amazon_email_domains:
                      - string
                    amazon_enabled: true
                    auth: none
                    azure_client_id: string
                    azure_client_secret: string
                    azure_enabled: true
                    azure_tenant_id: string
                    bypass_when_cloud_down: true
                    email_enabled: true
                    enabled: true
                    expire: 0
                    external_portal_url: string
                    facebook_client_id: string
                    facebook_client_secret: string
                    facebook_email_domains:
                      - string
                    facebook_enabled: true
                    forward: true
                    forward_url: string
                    google_email_domains:
                      - string
                    google_enabled: true
                    microsoft_client_id: string
                    microsoft_client_secret: string
                    microsoft_email_domains:
                      - string
                    microsoft_enabled: true
                    passphrase_enabled: true
                    password: string
                    portal_allowed_hostnames: string
                    portal_allowed_subnets: string
                    portal_api_secret: string
                    portal_denied_hostnames: string
                    portal_image: string
                    portal_sso_url: string
                    privacy: true
                    sms_enabled: true
                    sms_provider: manual
                    sponsor_email_domains:
                      - string
                    sponsor_enabled: true
                    sponsor_link_validity_duration: "60"
                    sso_default_role: string
                    sso_idp_cert: string
                    sso_idp_sign_algo: string
                    sso_idp_sso_url: string
                    sso_issuer: string
                    thumbnail: string
                    twilio_auth_token: string
                    twilio_phone_number: string
                    twilio_sid: string
                  portal_allowed_hostnames:
                    - string
                  portal_allowed_subnets:
                    - string
                  portal_api_secret: string
                  portal_denied_hostnames:
                    - string
                  portal_image: http://example.com
                  portal_sso_url: string
                  portal_template_url: string
                  qos:
                    class: best_effort
                    overwrite: true
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                  rateset:
                    "5":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                    "24":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                  roam_mode: 11r
                  schedule:
                    enabled: true
                    hours: {}
                  sle_excluded: true
                  ssid: string
                  thumbnail: http://example.com
                  use_eapol_v1: true
                  vlan_enabled: true
                  vlan_id: 1
                  vlan_ids:
                    - 1
                  vlan_pooling: true
                  wlan_limit_down: 0
                  wlan_limit_down_enabled: true
                  wlan_limit_up: 0
                  wlan_limit_up_enabled: true
                  wxtag_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_remote_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            schema:
              $ref: "#/components/schemas/wlan"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWlan
      tags:
        - Orgs Wlans
  "/api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_image":
    delete:
      description: Delete Org WLAN Portal Image
      operationId: deleteOrgWlanPortalImage
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWlanPortalImage
      tags:
        - Orgs Wlans
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wlan_id"
    post:
      description: Upload Org WLAN Portal Image
      operationId: uploadOrgWlanPortalImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/image_upload"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uploadOrgWlanPortalImage
      tags:
        - Orgs Wlans
  "/api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_template":
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wlan_id"
    put:
      description: Update Org WLAN Portal Template
      operationId: updateOrgWlanPortalTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wlan_portal_template"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Portaltemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWlanPortalTemplate
      tags:
        - Orgs Wlans
  "/api/v1/orgs/{org_id}/wxrules":
    get:
      description: Get List of Org WxRules
      operationId: listOrgWxRules
      responses:
        "200":
          $ref: "#/components/responses/WxruleArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgWxRules
      tags:
        - Orgs WxRules
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org WxRule
      operationId: createOrgWxRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_rule"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgWxRule
      tags:
        - Orgs WxRules
  "/api/v1/orgs/{org_id}/wxrules/derived":
    get:
      description: Get Derived Org WxRule
      operationId: getOrgWxRulesDerived
      responses:
        "200":
          $ref: "#/components/responses/WxruleArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWxRulesDerived
      tags:
        - Orgs WxRules
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/wxrules/{wxrules_id}":
    delete:
      description: Delete Org WxRule
      operationId: deleteOrgWxRule
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWxRule
      tags:
        - Orgs WxRules
    get:
      description: Get Org WxRule Details
      operationId: getOrgWxRule
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWxRule
      tags:
        - Orgs WxRules
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wxrules_id"
    put:
      description: Update Org WxRule
      operationId: updateOrgWxRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_rule"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWxRule
      tags:
        - Orgs WxRules
  "/api/v1/orgs/{org_id}/wxtags":
    get:
      description: Get List of Org WxLAN Tags
      operationId: listOrgWxTags
      responses:
        "200":
          $ref: "#/components/responses/WxtagArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgWxTags
      tags:
        - Orgs WxTags
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create WxLAN Tag
      operationId: createOrgWxTag
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_tag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgWxTag
      tags:
        - Orgs WxTags
  "/api/v1/orgs/{org_id}/wxtags/apps":
    get:
      description: Get Application List
      operationId: getOrgApplicationList
      responses:
        "200":
          $ref: "#/components/responses/WxtagApps"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgApplicationList
      tags:
        - Orgs WxTags
    parameters:
      - $ref: "#/components/parameters/org_id"
  "/api/v1/orgs/{org_id}/wxtags/{wxtag_id}":
    delete:
      description: Delete WxLAN Tag
      operationId: deleteOrgWxTag
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWxTag
      tags:
        - Orgs WxTags
    get:
      description: Get WxLAN Tag Details
      operationId: getOrgWxTag
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWxTag
      tags:
        - Orgs WxTags
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wxtag_id"
    put:
      description: Update WxLAN Tag
      operationId: updateOrgWxTag
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_tag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWxTag
      tags:
        - Orgs WxTags
  "/api/v1/orgs/{org_id}/wxtags/{wxtag_id}/clients":
    get:
      description: Get Current Matching Clients of a WXLAN Tag
      operationId: getOrgCurrentMatchingClientsOfAWxTag
      responses:
        "200":
          $ref: "#/components/responses/WxtagClients"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgCurrentMatchingClientsOfAWxTag
      tags:
        - Orgs WxTags
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wxtag_id"
  "/api/v1/orgs/{org_id}/wxtunnels":
    get:
      description: Get List of Org WxLAN Tunnels
      operationId: listOrgWxTunnels
      responses:
        "200":
          $ref: "#/components/responses/WxtunnelArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listOrgWxTunnels
      tags:
        - Orgs WxTunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
    post:
      description: Create Org WxAN Tunnel
      operationId: createOrgWxTunnel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_tunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createOrgWxTunnel
      tags:
        - Orgs WxTunnels
  "/api/v1/orgs/{org_id}/wxtunnels/{wxtunnel_id}":
    delete:
      description: Delete Org WxLAN Tunnel
      operationId: deleteOrgWxTunnel
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteOrgWxTunnel
      tags:
        - Orgs WxTunnels
    get:
      description: Get Org WxLAN Tunnel Details
      operationId: getOrgWxTunnel
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOrgWxTunnel
      tags:
        - Orgs WxTunnels
    parameters:
      - $ref: "#/components/parameters/org_id"
      - $ref: "#/components/parameters/wxtunnel_id"
    put:
      description: Update Org WxLAN Tunnel
      operationId: updateOrgWxTunnel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_tunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateOrgWxTunnel
      tags:
        - Orgs WxTunnels
  /api/v1/recover:
    post:
      description: |-
        Recover Password
        An email will also be sent to the user with a link to https://manage.mist.com/verify/recover?token=:token
      operationId: recoverPassword
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: test@mistsys.com
                  recaptcha: see https://www.google.com/recaptcha/
            schema:
              properties:
                email:
                  type: string
                recaptcha:
                  type: string
              required:
                - email
                - recaptcha
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: recoverPassword
      tags:
        - Self
  "/api/v1/recover/verify/{token}":
    parameters:
      - $ref: "#/components/parameters/token"
    post:
      description: |-
        Verify Recover Password
        With correct verification, the user will be authenticated. UI can then prompt for new password
      operationId: verifyRecoverPasssword
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: verifyRecoverPasssword
      tags:
        - Self
  /api/v1/register:
    post:
      description: |-
        Register a new admin and his/her org
        An email will also be sent to the user with a link to https://manage.mist.com/verify/register?token=:token
      operationId: registerNewAdmin
      requestBody:
        content:
          application/json:
            schema:
              properties:
                account_only:
                  default: false
                  description: skip creating initial setup if true
                  type: boolean
                allow_mist:
                  default: false
                  description: whether to allow Mist to look at this org
                  type: boolean
                email:
                  type: string
                first_name:
                  type: string
                invite_code:
                  description: required initially
                  type: string
                last_name:
                  type: string
                org_name:
                  type: string
                password:
                  type: string
                recaptcha:
                  type: string
                referer_invite_token:
                  description: the invite token to apply after account creation
                  type: string
                return_to:
                  description: the url the user should be redirected back to
                  type: string
              required:
                - email
                - password
                - first_name
                - last_name
                - org_name
                - recaptcha
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: registerNewAdmin
      tags:
        - Admin
  "/api/v1/register/verify/{token}":
    parameters:
      - $ref: "#/components/parameters/token"
    post:
      description: Verify registration
      operationId: verifyRegistration
      responses:
        "200":
          content:
            application/json:
              examples:
                Response if successful:
                  value:
                    return_to: http://mist.zendesk.com/hc/quickstart.pdf
                Response if successful but failed to apply the invitation automatically:
                  value:
                    detail: password policy not met
                    invite_not_applied: true
                    min_length: 8
              schema:
                properties:
                  detail:
                    type: string
                  invite_not_applied:
                    type: boolean
                  min_length:
                    type: integer
                  return_to:
                    type: string
                type: object
          description: OK
          headers:
            Set-Cookie:
              schema:
                example: csrftoken=vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx; expires=Tue, 15-Mar-2016 19:47:20 GMT; Max-Age=31449600; Path=/
                type: string
        "400":
          content:
            application/json:
              examples:
                already registered:
                  value:
                    detail: already registered
                verification expired:
                  value:
                    detail: expired
              schema:
                properties:
                  detail:
                    type: string
                required:
                  - detail
                type: object
          description: Response if verification expired or already registered
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                required:
                  - detail
                type: object
          description: Response if secret is invalid
      summary: verifyRegistration
      tags:
        - Admin
  /api/v1/self:
    delete:
      description: |-
        To delete ones account and every associated with it. The effects:

        the account would be deleted
        any orphaned Org (that only has this account as admin) will be deleted
        along with all data with Org (sites, wlans, devices) will be gone.
      operationId: deleteSelf
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              examples:
                if any of the org to be deleted still has inventory:
                  value:
                    detail: inventory not empty
                    org_id: 424f6eca-7276-4993-bfeb-53cbbbba6f05
              schema:
                properties:
                  detail:
                    type: string
                  org_id:
                    format: uuid
                    type: string
                required:
                  - detail
                  - org_id
                type: object
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSelf
      tags:
        - Self
    get:
      description: Get ‘whoami’ and privileges (which org and which sites I have access to)
      operationId: getSelf
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSelf
      tags:
        - Self
    put:
      description: update Account Information
      operationId: updateSelf
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: john.smith@mycorp.net
                  enable_two_factor: true
                  first_name: John
                  last_name: Smith
                  password: foryoureyesonly
                  persona: security
                  phone: "14081112222"
                  phone2: "14083334444"
            schema:
              $ref: "#/components/schemas/admin"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Admin"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSelf
      tags:
        - Self
  /api/v1/self/apitokens:
    get:
      description: Get List of Current User API Tokens
      operationId: listApiTokens
      responses:
        "200":
          $ref: "#/components/responses/ApitokensArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listApiTokens
      tags:
        - API Token
    post:
      description: |-
        Create API Token
        Note that the key is only available during creation time.
      operationId: createApiToken
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/Apitoken"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createApiToken
      tags:
        - API Token
  "/api/v1/self/apitokens/{apitoken_id}":
    delete:
      description: Delete an API Token
      operationId: deleteApiToken
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteApiToken
      tags:
        - API Token
    parameters:
      - in: path
        name: apitoken_id
        required: true
        schema:
          type: string
  /api/v1/self/logs:
    get:
      description: |-
        Get List of change logs across all Orgs for current admin
        Audit logs records all administrative activities done by current admin across all orgs
      operationId: listSelfAuditLogs
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1428954000
                    limit: 100
                    page: 1
                    results:
                      - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                        admin_name: test@mistsys.com
                        after:
                          auth:
                            type: open
                        before:
                          auth:
                            type: psk
                        id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                        message: Update WLAN "Corporate"
                        org_id: 423f6eca-6276-4994-bfeb-53cbbbba6f04
                        site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                        timestamp: 1431382121
                    start: 1428939600
                    total: 135
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  page:
                    type: integer
                  results:
                    items:
                      properties:
                        admin_id:
                          format: uuid
                          type: string
                        admin_name:
                          type: string
                        after:
                          description: field values after the change
                          properties:
                            auth:
                              properties:
                                type:
                                  type: string
                              required:
                                - type
                              type: object
                          required:
                            - auth
                          type: object
                        before:
                          description: field values prior to the change
                          properties:
                            auth:
                              properties:
                                type:
                                  type: string
                              required:
                                - type
                              type: object
                          required:
                            - auth
                          type: object
                        for_site:
                          readOnly: true
                          type: boolean
                        id:
                          format: uuid
                          type: string
                        message:
                          type: string
                        org_id:
                          format: uuid
                          type: string
                        site_id:
                          format: uuid
                          type: string
                        timestamp:
                          type: number
                      required:
                        - admin_id
                        - admin_name
                        - id
                        - message
                        - org_id
                        - site_id
                        - timestamp
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - page
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSelfAuditLogs
      tags:
        - Self
  "/api/v1/self/oauth/{provider}":
    get:
      description: Obtain Authorization URL for Linking
      operationId: getOAuth2UrlForLinking
      parameters:
        - in: query
          name: forward
          schema:
            example: http://manage.mist.com/oauth/callback.html
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    authorization_url: https://accounts.google.com/o/oauth2/v2/auth?.....
                    linked: false
              schema:
                properties:
                  authorization_url:
                    type: string
                  linked:
                    type: boolean
                required:
                  - linked
                  - authorization_url
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getOAuth2UrlForLinking
      tags:
        - Login With OAuth2
    parameters:
      - in: path
        name: provider
        required: true
        schema:
          type: string
    post:
      description: Link Mist account with an OAuth2 Provider
      operationId: linkOAuth2MistAccount
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  code: 4/S9tegDeLkrYg0L9pWNXV4cgMVbbr3SR9t693A2kSHzw
            schema:
              properties:
                code:
                  type: string
              required:
                - code
              type: object
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    action: oauth account linked
                    id: google-user-id
              schema:
                properties:
                  action:
                    type: string
                  id:
                    type: string
                required:
                  - action
                  - id
                type: object
          description: OK
        "400":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    error: access_denied
                    error_description: The resource owner or authorization server denied the request.
              schema:
                properties:
                  error:
                    type: string
                  error_description:
                    type: string
                required:
                  - error
                  - error_description
                type: object
          description: Authorization Error
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: linkOAuth2MistAccount
      tags:
        - Login With OAuth2
  /api/v1/self/subscriptions:
    get:
      description: Get List of all the subscriptions
      operationId: listAlarmSubscriptions
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  properties:
                    org_id:
                      format: uuid
                      type: string
                  required:
                    - org_id
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listAlarmSubscriptions
      tags:
        - Self
  /api/v1/self/two_factor/token:
    get:
      description: Generate QR code for verification
      operationId: generateQrCodeForVerification
      parameters:
        - in: query
          name: by
          schema:
            default: qrcode
            enum:
              - qrcode
            type: string
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: generateQrCodeForVerification
      tags:
        - Self
  /api/v1/self/two_factor/verify:
    post:
      description: |-
        Verify Two-factor (OTP)

        To verify two-factor authentication by using a code generated by app (e.g. Google Authenticator, Authy) or by SMS. Upon successful verification, the otp_verified will be set to true if it hasn’t already been.
      operationId: verifyTwoFactor
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  two_factor: "123456"
            schema:
              properties:
                two_factor:
                  type: string
              required:
                - two_factor
              type: object
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: Response when 2FA verification is successful
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: verifyTwoFactor
      tags:
        - Self
  /api/v1/self/update:
    post:
      description: |-
        Change Email
        We require the user to verify that they actually own the email address they intend to change it to.

        After the API call, the user will receive an email to the new email address with a link like https://manage.mist.com/verify/update?expire=:exp_time&email=:admin_email&token=:token

        Upon clicking the link, the user is provided with a login page to authenticate using existing credentials. After successful login, the email address of the user gets updated

        **Note**: The request parameter email can be used by UI to validate that the current session (if any) belongs to the admin or provide a login page (by pre-populating the email on login screen). UI can also use the request parameter expire to validate token expiry.
      operationId: updateSelfEmail
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  email: new@mistsys.com
            schema:
              $ref: "#/components/schemas/Model_object_email"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              examples:
                invalid email address:
                  value: {}
                new email address already exists:
                  value:
                    detail: email already existed
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: invalid email address or new email address already exists
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSelfEmail
      tags:
        - Self
  "/api/v1/self/update/verify/{token}":
    get:
      description: Verify Email change
      operationId: verifySelfEmail
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: With correct verification, the email address of the user will be updated
        "400":
          content:
            application/json:
              examples:
                invalid or expired token:
                  value:
                    detail: invalid token
                new email address already exists:
                  value:
                    detail: email already existed
                request comes from authenticated users other than admin:
                  value:
                    detail: invalid token
              schema:
                properties:
                  detail:
                    type: string
                required:
                  - detail
                type: object
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: verifySelfEmail
      tags:
        - Self
    parameters:
      - $ref: "#/components/parameters/token"
  "/api/v1/sites/{site_id}":
    delete:
      description: Delete Site
      operationId: deleteSite
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSite
      tags:
        - Sites
    get:
      description: Get Site Info
      operationId: getSiteInfo
      responses:
        "200":
          $ref: "#/components/responses/Site"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteInfo
      tags:
        - Sites
    parameters:
      - $ref: "#/components/parameters/site_id"
    put:
      description: Update Site Info
      operationId: updateSiteInfo
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  address: string
                  alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  country_code: string
                  latlng:
                    lat: 0
                    lng: 0
                  name: string
                  networktemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  notes: string
                  rftemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  secpolicy_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  sitegroup_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  timezone: string
            schema:
              $ref: "#/components/schemas/site"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Site"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteInfo
      tags:
        - Sites
  "/api/v1/sites/{site_id}/alarms/ack":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Ack multiple Site Alarms
      operationId: multiAckSiteAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarm_ids:
                    - ccb8c94d-ca56-4075-932f-1f2ab444ff2c
                    - 98ff4a3d-ec9b-4138-a42e-54fc3335179d
                  note: maintenance window
            schema:
              properties:
                alarm_ids:
                  items:
                    format: uuid
                    type: string
                  type: array
                note:
                  description: Some text note describing the intent
                  type: string
              required:
                - alarm_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiAckSiteAlarms
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/alarms/ack_all":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Ack all Site Alarms

        **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.
      operationId: ackSiteAllAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: string
            schema:
              $ref: "#/components/schemas/note"
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: ackSiteAllAlarms
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/alarms/count":
    get:
      description: Count Site Alarms
      operationId: countSiteAlarms
      parameters:
        - description: Group by and count the alarms by some distinct field
          in: query
          name: distinct
          schema:
            default: type
            enum:
              - type
              - acked
              - severity
              - group
            type: string
        - description: Name of the admins who have acked the alarms; accepts multiple values separated by comma
          in: query
          name: ack_admin_name
          schema:
            type: string
        - in: query
          name: acked
          schema:
            type: boolean
        - description: Key-name of the alarms; accepts multiple values separated by comma
          in: query
          name: type
          schema:
            type: string
        - description: Alarm severity; accepts multiple values separated by comma
          in: query
          name: severity
          schema:
            type: string
        - description: Alarm group name; accepts multiple values separated by comma
          in: query
          name: group
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteAlarms
      tags:
        - Sites Alarms
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/alarms/search":
    get:
      description: Search Site Alarms
      operationId: searchSiteAlarms
      parameters:
        - description: Key-name of the alarms; accepts multiple values separated by comma
          in: query
          name: type
          schema:
            type: string
        - description: Name of the admins who have acked the alarms; accepts multiple values separated by comma
          in: query
          name: ack_admin_name
          schema:
            type: string
        - in: query
          name: acked
          schema:
            type: boolean
        - description: Alarm severity; accepts multiple values separated by comma
          in: query
          name: severity
          schema:
            type: string
        - description: Alarm group name; accepts multiple values separated by comma
          in: query
          name: group
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AlarmsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteAlarms
      tags:
        - Sites Alarms
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/alarms/unack":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Unack multiple Site Alarms
      operationId: multiUnackSiteAlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  alarm_ids:
                    - ccb8c94d-ca56-4075-932f-1f2ab444ff2c
                    - 98ff4a3d-ec9b-4138-a42e-54fc3335179d
                  note: maintenance window
            schema:
              properties:
                alarm_ids:
                  items:
                    format: uuid
                    type: string
                  type: array
                note:
                  description: Some text note describing the intent
                  type: string
              required:
                - alarm_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiUnackSiteAlarms
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/alarms/unack_all":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Unack all Site Alarms

        **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.
      operationId: unackSiteAllArlarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: maintenance window
            schema:
              $ref: "#/components/schemas/note"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unackSiteAllArlarms
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/alarms/{alarm_id}/ack":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/alarm_id"
    post:
      description: Ack Site Alarm
      operationId: ackSiteAlarm
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: maintenance window
            schema:
              $ref: "#/components/schemas/note"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: ackSiteAlarm
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/alarms/{alarm_id}/unack":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/alarm_id"
    post:
      description: Unack Site Alarm
      operationId: unackSiteAlarm
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  note: maintenance window
            schema:
              $ref: "#/components/schemas/note"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unackSiteAlarm
      tags:
        - Sites Alarms
  "/api/v1/sites/{site_id}/anomaly/client/{client_mac}/{metric}":
    get:
      description: Get Client Anomaly Events
      operationId: getSiteAnomalyEventsForClient
      responses:
        "200":
          $ref: "#/components/responses/AnomalyMetrics"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAnomalyEventsForClient
      tags:
        - Sites Anomaly
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
      - $ref: "#/components/parameters/metric"
  "/api/v1/sites/{site_id}/anomaly/device/{device_mac}/{metric}":
    get:
      description: Get Device Anomaly Events
      operationId: getSiteAnomalyEventsforDevice
      responses:
        "200":
          $ref: "#/components/responses/AnomalyMetrics"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAnomalyEventsforDevice
      tags:
        - Sites Anomaly
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/metric"
      - $ref: "#/components/parameters/device_mac"
  "/api/v1/sites/{site_id}/anomaly/{metric}":
    get:
      description: Get Site Anomaly Events
      operationId: getSiteAnomalyEvents
      responses:
        "200":
          $ref: "#/components/responses/AnomalyMetrics"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAnomalyEvents
      tags:
        - Sites Anomaly
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/metric"
  "/api/v1/sites/{site_id}/apps":
    get:
      description: Get List of Site Applications
      operationId: listSiteApps
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - group: string
                      key: string
                      name: string
              schema:
                description: ""
                items:
                  properties:
                    group:
                      minLength: 1
                      type: string
                    key:
                      minLength: 1
                      type: string
                    name:
                      minLength: 1
                      type: string
                  required:
                    - key
                    - name
                    - group
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
                x-examples:
                  example-1:
                    - group: Emails
                      key: gmail
                      name: Gmail - web/app
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteApps
      tags:
        - Sites Applications
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/assetfilters":
    get:
      description: Get List of Site Asset Filters
      operationId: listSiteAssetFilters
      responses:
        "200":
          $ref: "#/components/responses/AssetfiltersArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAssetFilters
      tags:
        - Sites Asset Filters
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site Asset Filter
      operationId: createSiteAssetFilters
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset_filter"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteAssetFilters
      tags:
        - Sites Asset Filters
  "/api/v1/sites/{site_id}/assetfilters/{assetfilter_id}":
    delete:
      description: Deletes an existing BLE asset filter for the given site.
      operationId: deleteSiteAssetFilter
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteAssetFilter
      tags:
        - Sites Asset Filters
    get:
      description: Get Site Asset Filter Details
      operationId: getSiteAssetFilter
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAssetFilter
      tags:
        - Sites Asset Filters
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/assetfilter_id"
    put:
      description: Updates an existing BLE asset filter for the given site.
      operationId: updateSiteAssetFilter
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset_filter"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Assetfilter"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteAssetFilter
      tags:
        - Sites Asset Filters
  "/api/v1/sites/{site_id}/assets":
    get:
      description: Get List of Site Assets
      operationId: listSiteAssets
      responses:
        "200":
          $ref: "#/components/responses/AssetsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAssets
      tags:
        - Sites Assets
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site Asset
      operationId: createSiteAsset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteAsset
      tags:
        - Sites Assets
  "/api/v1/sites/{site_id}/assets/import":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Impert Site Assets. 

        It can be done via a CSV file or a JSON payload.

        ## CSV File Format
        ```csv
        name,mac
        "asset_name",5c5b53010101
        ``` 
      operationId: importSiteAssets
      parameters:
        - description: API will replace the assets with same mac if provided `upsert`==`True`, otherwise will report in errors in response.
          in: query
          name: upsert
          schema:
            default: "False"
            enum:
              - "True"
              - "False"
            type: string
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - mac: a31eb04e1c38
                    name: Expensive Instrument
                  - mac: a31eb04e1c37
                    name: Cheap Instrument
            schema:
              description: ""
              items:
                properties:
                  mac:
                    minLength: 1
                    type: string
                  name:
                    minLength: 1
                    type: string
                required:
                  - name
                  - mac
                type: object
              minItems: 1
              type: array
              uniqueItems: true
              x-examples:
                example-1:
                  - mac: a31eb04e1c38
                    name: Expensive Instrument
                  - mac: a31eb04e1c37
                    name: Cheap Instrument
          multipart/form-data:
            schema:
              properties:
                file:
                  description: CSV file
                  format: binary
                  type: string
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importSiteAssets
      tags:
        - Sites Assets
  "/api/v1/sites/{site_id}/assets/{asset_id}":
    delete:
      description: Delete Site Asset
      operationId: deleteSiteAsset
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "201":
          description: Created
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteAsset
      tags:
        - Sites Assets
    get:
      description: Get Site Asset Details
      operationId: getSiteAsset
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAsset
      tags:
        - Sites Assets
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/asset_id"
    put:
      description: Update Site Asset
      operationId: updateSiteAsset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/asset"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Asset"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteAsset
      tags:
        - Sites Assets
  "/api/v1/sites/{site_id}/beacons":
    get:
      description: Get List of Site Beacons
      operationId: listSiteBeacons
      responses:
        "200":
          $ref: "#/components/responses/BeaconsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteBeacons
      tags:
        - Sites Beacons
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site Beacon
      operationId: createSiteBeacon
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  eddystone_instance: string
                  eddystone_namespace: string
                  eddystone_url: string
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mac: string
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  power: 0
                  type: eddystone-uid
                  x: 0
                  y: 0
            schema:
              $ref: "#/components/schemas/beacon"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Beacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteBeacon
      tags:
        - Sites Beacons
  "/api/v1/sites/{site_id}/beacons/{beacon_id}":
    delete:
      description: Delete Site Beacon
      operationId: deleteSiteBeacons
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteBeacons
      tags:
        - Sites Beacons
    get:
      description: Get Site Beacon Details
      operationId: getSiteBeacon
      responses:
        "200":
          $ref: "#/components/responses/Beacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteBeacon
      tags:
        - Sites Beacons
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/beacon_id"
    put:
      description: Update Site Beacon
      operationId: updateSiteBeacons
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  eddystone_instance: string
                  eddystone_namespace: string
                  eddystone_url: string
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mac: string
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  power: 0
                  type: eddystone-uid
                  x: 0
                  y: 0
            schema:
              $ref: "#/components/schemas/beacon"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Beacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteBeacons
      tags:
        - Sites Beacons
  "/api/v1/sites/{site_id}/call/events/count":
    get:
      description: Count Site Call Events
      operationId: countSiteCallEvents
      parameters:
        - in: query
          name: distinct
          schema:
            enum:
              - type
              - app
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteCallEvents
      tags:
        - Sites Calls
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/call/events/search":
    get:
      description: Search Site Call Events
      operationId: searchSiteCallEvents
      parameters:
        - description: Event Type. See [getCallEventsDefinitions](#tag/Constants/operation/getCallEventsDefinitions)
          in: query
          name: type
          schema:
            type: string
        - in: query
          name: ap
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: app
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/CallEventsArraySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteCallEvents
      tags:
        - Sites Calls
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/count":
    get:
      description: Count by Distinct Attributes of Clients
      operationId: countSiteClients
      parameters:
        - example: hostname
          in: query
          name: distinct
          required: true
          schema:
            default: device
            enum:
              - ssid
              - ap
              - ip
              - vlan
              - hostname
              - os
              - model
              - device
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - in: query
          name: ap
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - in: query
          name: vlan
          schema:
            type: string
        - in: query
          name: hostname
          schema:
            type: string
        - in: query
          name: os
          schema:
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: device
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteClients
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/disconnect":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: To unauthorize multiple clients
      operationId: disconnectSiteMultipleClients
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - 683b679ac024
            schema:
              items:
                type: string
              minItems: 1
              type: array
              uniqueItems: true
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: disconnectSiteMultipleClients
      tags:
        - Sites Clients
  "/api/v1/sites/{site_id}/clients/events/count":
    get:
      description: Count by Distinct Attributes of Client-Events
      operationId: countSiteClientsEvents
      parameters:
        - description: type / proto / band / channel / wlan_id / ssid
          example: type
          in: query
          name: distinct
          schema:
            enum:
              - type
              - proto
              - band
              - channel
              - wlan_id
              - ssid
            type: string
        - description: event type, e.g. MARVIS_EVENT_CLIENT_FBT_FAILURE
          in: query
          name: type
          schema:
            type: string
        - description: for assoc/disassoc events
          in: query
          name: reason_code
          schema:
            type: integer
        - description: SSID Name
          in: query
          name: ssid
          schema:
            type: string
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 802.11 standard
          in: query
          name: proto
          schema:
            enum:
              - b
              - g
              - n
              - ac
              - ax
              - a
            type: string
        - description: 24 / 5
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteClientsEvents
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/events/search":
    get:
      description: Get Site Clients Events
      operationId: searchSiteClientsEvents
      parameters:
        - description: event type, e.g. MARVIS_EVENT_CLIENT_FBT_FAILURE
          in: query
          name: type
          schema:
            type: string
        - description: for assoc/disassoc events
          in: query
          name: reason_code
          schema:
            type: integer
        - description: SSID Name
          in: query
          name: ssid
          schema:
            type: string
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 802.11 standard
          in: query
          name: proto
          schema:
            enum:
              - b
              - g
              - n
              - ac
              - ax
              - a
            type: string
        - description: 24 / 5
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/EventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteClientsEvents
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/search":
    get:
      description: |-
        Search Wireless Clients

        **NOTE**: fuzzy logic can be used with ‘*’, supported filters: mac, hostname, device, os, model. E.g. /clients/search?device=Mac*&hostname=jerry
      operationId: searchSiteClientsWireless
      parameters:
        - description: partial / full MAC address
          in: query
          name: mac
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: device type, e.g. Mac, Nvidia, iPhone
          in: query
          name: device
          schema:
            type: string
        - description: os, e.g. Sierra, Yosemite, Windows 10
          in: query
          name: os
          schema:
            type: string
        - description: model, e.g. “MBP 15 late 2013”, 6, 6s, “8+ GSM”
          in: query
          name: model
          schema:
            type: string
        - description: AP mac where the client has connected to
          in: query
          name: ap
          schema:
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - description: partial / full MAC address, hostname, username or ip
          in: query
          name: text
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ClientsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteClientsWireless
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/sessions/count":
    get:
      description: Count by Distinct Attributes of Client Sessions
      operationId: countSiteClientSessions
      parameters:
        - in: query
          name: distinct
          schema:
            default: mac
            enum:
              - ssid
              - wlan_id
              - ap
              - mac
              - client_family
              - client_manufacture
              - client_model
              - client_os
            type: string
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 24 /5
          in: query
          name: band
          schema:
            type: string
        - description: E.g. “Mac”, “iPhone”, “Apple watch”
          in: query
          name: client_family
          schema:
            type: string
        - description: E.g. “Apple”
          in: query
          name: client_manufacture
          schema:
            type: string
        - description: E.g. “8+”, “XS”
          in: query
          name: client_model
          schema:
            type: string
        - description: E.g. “Mojave”, “Windows 10”, “Linux”
          in: query
          name: client_os
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteClientSessions
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/sessions/search":
    get:
      description: Search Client Sessions
      operationId: searchSiteClientWirelessSessions
      parameters:
        - description: AP MAC
          in: query
          name: ap
          schema:
            type: string
        - description: 5 / 24
          in: query
          name: band
          schema:
            enum:
              - "24"
              - "5"
            type: string
        - description: E.g. “Mac”, “iPhone”, “Apple watch”
          in: query
          name: client_family
          schema:
            type: string
        - description: E.g. “Apple”
          in: query
          name: client_manufacture
          schema:
            type: string
        - description: E.g. “8+”, “XS”
          in: query
          name: client_model
          schema:
            type: string
        - description: Username
          in: query
          name: client_username
          schema:
            type: string
        - description: E.g. “Mojave”, “Windows 10”, “Linux”
          in: query
          name: client_os
          schema:
            type: string
        - description: SSID
          in: query
          name: ssid
          schema:
            type: string
        - description: wlan_id
          in: query
          name: wlan_id
          schema:
            type: string
        - $ref: "#/components/parameters/psk_id_query"
        - description: PSK Name
          in: query
          name: psk_name
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ClientSessionsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteClientWirelessSessions
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/clients/unauthorize":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: This unauthorize clients (if they are guest) and disconnect them. From the guest’s perspective, they will see the splash page again and go through the flow (e.g. Terms of Use) again.
      operationId: unauthorizeSiteMultipleClients
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - 683b679ac024
            schema:
              items:
                type: string
              minItems: 1
              type: array
              uniqueItems: true
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unauthorizeSiteMultipleClients
      tags:
        - Sites Clients
  "/api/v1/sites/{site_id}/clients/{client_mac}/disconnect":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
    post:
      description: This disconnect a client (and it’s likely to connect back)
      operationId: disconnectSiteClient
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: disconnectSiteClient
      tags:
        - Sites Clients
  "/api/v1/sites/{site_id}/clients/{client_mac}/events":
    get:
      description: Get the list of events for a specific client
      operationId: getSiteEventsForClient
      parameters:
        - description: e.g. MARVIS_EVENT_CLIENT_DHCP_STUCK
          in: query
          name: type
          schema:
            enum:
              - b
              - g
              - n
            type: string
        - description: a / b / g / n / ac / ax
          in: query
          name: proto
          schema:
            enum:
              - a
              - b
              - g
              - n
              - ac
              - ax
            type: string
        - description: 24 / 5
          in: query
          name: band
          schema:
            type: string
        - in: query
          name: channel
          schema:
            type: string
        - in: query
          name: wlan_id
          schema:
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ClientEventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteEventsForClient
      tags:
        - Sites Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
  "/api/v1/sites/{site_id}/clients/{client_mac}/unauthorize":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
    post:
      description: This unauthorize a client (if it’s a guest) and disconnect it. From the guest’s perspective, s/he will see the splash page again and go through the flow (e.g. Terms of Use) again.
      operationId: unauthorizeSiteClient
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: unauthorizeSiteClient
      tags:
        - Sites Clients
  "/api/v1/sites/{site_id}/devices":
    get:
      description: Get list of devices on the site.
      operationId: listSiteDevices
      parameters:
        - description: device type
          in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
              - all
            type: string
        - $ref: "#/components/parameters/name"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/DevicesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteDevices
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/ap_channels":
    get:
      description: Get a list of allowed channels (per channel width)
      operationId: getSiteDeviceRadioChannels
      parameters:
        - description: country code for the site (for AP config generation), in [two-character](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
          example: US
          in: query
          name: country_code
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/DeviceRadioChannels"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceRadioChannels
      tags:
        - Sites Devices APs
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/config_history/count":
    get:
      description: Counts the number of entries in device config history for distinct field with given filters
      operationId: countSiteDeviceConfigHistory
      parameters:
        - in: query
          name: distinct
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteDeviceConfigHistory
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/config_history/search":
    get:
      description: Search for entries in device config history
      operationId: searchSiteDeviceConfigHistory
      parameters:
        - in: query
          name: device_type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - description: Device MAC Address
          in: query
          name: mac
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ConfigsHistorySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDeviceConfigHistory
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/count":
    get:
      description: Counts the number of entries in ap events history for distinct field with given filters
      operationId: countSiteDevices
      parameters:
        - in: query
          name: distinct
          schema:
            default: model
            enum:
              - model
              - version
              - map_id
              - hostname
              - mxtunnel_status
              - mxedge_id
              - lldp_system_name
              - lldp_system_desc
              - lldp_port_id
              - lldp_mgmt_addr
            type: string
        - in: query
          name: hostname
          schema:
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: version
          schema:
            type: string
        - in: query
          name: mxtunnel_status
          schema:
            type: string
        - in: query
          name: mxedge_id
          schema:
            type: string
        - in: query
          name: lldp_system_name
          schema:
            type: string
        - in: query
          name: lldp_system_desc
          schema:
            type: string
        - in: query
          name: lldp_port_id
          schema:
            type: string
        - in: query
          name: lldp_mgmt_addr
          schema:
            type: string
        - in: query
          name: map_id
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: model
                    end: 1604304258.674506
                    limit: 10
                    percentage: 100
                    results:
                      - count: 1
                        model: AP41
                      - count: 1
                        model: AP43
                    start: 1604217858.6744902
                    total: 2
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: number
                  limit:
                    type: integer
                  percentage:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        model:
                          type: string
                      required:
                        - model
                        - count
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - results
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - percentage
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteDevices
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/events/count":
    get:
      description: Counts the number of entries in ap events history for distinct field with given filters
      operationId: countSiteDeviceEvents
      parameters:
        - in: query
          name: distinct
          schema:
            default: model
            enum:
              - model
              - type
              - type_code
              - mac
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: type
          schema:
            type: string
        - in: query
          name: type_code
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: type
                    end: 1531862583
                    limit: 10
                    percentage: 100
                    results:
                      - count: 10
                        type: AP_CONNECT_STATUS
                      - count: 4
                        type: AP_CONFIGURED
                    start: 1531776183
                    total: 2
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: integer
                  limit:
                    type: integer
                  percentage:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        type:
                          type: string
                      required:
                        - count
                        - type
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - distinct
                  - results
                  - start
                  - limit
                  - percentage
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteDeviceEvents
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/events/search":
    get:
      description: Search Devices Events
      operationId: searchSiteDevicesEvents
      parameters:
        - in: query
          name: device_type
          schema:
            enum:
              - ap
              - switch
              - gateway
            type: string
        - description: device mac
          in: query
          name: mac
          schema:
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: event message
          in: query
          name: text
          schema:
            type: string
        - description: event time
          in: query
          name: timestamp
          schema:
            type: string
        - description: see [Event Types Definition](/#tag/Constants/operation/getDeviceEventsDefinitions)
          in: query
          name: type
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1531862583
                    limit: 2
                    next: /api/v1/sites/8aaba0aa-09cc-44bd-9709-33b98040550c/devices/events/search?ap=5c5b350e0001&end=1531855849.000&limit=2&start=1531776183.0
                    results:
                      - last_reboot_time: 1531854327
                        text: Success
                        timestamp: 1531855849.226722
                        type: AP_CONNECT_STATUS
                        type_code: 2002
                      - timestamp: 1531854326
                        type: AP_CONFIGURED
                    start: 1531776183
                    total: 14
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      $ref: "#/components/schemas/events_device_ap"
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - next
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDevicesEvents
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/export":
    get:
      description: To download the exported device information
      operationId: exportSiteDevices
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: exportSiteDevices
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/import":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Import Information for Multiple Devices

        CSV format:
        ```csv
        mac,name,map_id,x,y,height,orientation,labels,band_24.power,band_24.bandwidth,band_24.channel,band_24.disabled,band_5.power,band_5.bandwidth,band_5.channel,band_5.disabled,band_6.power,band_6.bandwidth,band_6.channel,band_6.disabled
        5c5b53010101,"AP 1",845a23bf-bed9-e43c-4c86-6fa474be7ae5,30,10,2.3,45,"guest, campus, vip",1,20,0,false,0,40,0,false,17,80,0,false
        ```
      operationId: importSiteDevices
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - aeroscout:
                      enabled: false
                      host: string
                      locate_connected: true
                    ble_config:
                      beacon_enabled: true
                      beacon_rate: 0
                      beacon_rate_mode: default
                      beam_disabled:
                        - 0
                      eddystone_uid_adv_power: -100
                      eddystone_uid_beams: string
                      eddystone_uid_enabled: true
                      eddystone_uid_freq_msec: 0
                      eddystone_uid_instance: string
                      eddystone_uid_namespace: string
                      eddystone_url_adv_power: 0
                      eddystone_url_beams: string
                      eddystone_url_enabled: true
                      eddystone_url_freq_msec: 0
                      eddystone_url_url: string
                      ibeacon_adv_power: -100
                      ibeacon_beams: string
                      ibeacon_enabled: false
                      ibeacon_freq_msec: 0
                      ibeacon_major: 0
                      ibeacon_minor: 0
                      ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                      power: 9
                      power_mode: string
                    created_time: 0
                    deviceprofile_id: 366a0f23-8d77-404c-8908-b2e629ba0782
                    disable_eth1: false
                    disable_eth2: false
                    disable_eth3: false
                    disable_module: false
                    for_site: true
                    height: 0
                    id: 484f6eca-6276-4993-bfeb-55cbbbba6f08
                    image1_url: string
                    image2_url: string
                    image3_url: string
                    iot_config:
                      A1:
                        enabled: false
                        name: string
                        output: true
                        pullup: internal
                        value: 0
                      A2:
                        enabled: false
                        name: string
                        output: true
                        pullup: internal
                        value: 0
                      A3:
                        enabled: false
                        name: string
                        output: true
                        pullup: internal
                        value: 0
                      A4:
                        enabled: false
                        name: string
                        output: true
                        pullup: internal
                        value: 0
                      DI1:
                        enabled: false
                        name: string
                        pullup: internal
                      DI2:
                        enabled: false
                        name: string
                        pullup: internal
                      DO:
                        enabled: false
                        name: string
                        output: true
                        pullup: internal
                        value: 0
                    ip_config:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: 192.168.0.1
                      gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                      ip: 192.168.0.1
                      ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                      mtu: 0
                      netmask: 192.168.0.1
                      netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                      type: static
                      type6: static
                      vlan_id: 1
                    led:
                      brightness: 0
                      enabled: true
                    locked: true
                    map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                    mesh:
                      enabled: false
                      group: 0
                      role: base
                    modified_time: 0
                    name: string
                    notes: string
                    ntp_servers:
                      - string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    orientation: 0
                    poe_passthrough: false
                    port_config:
                      property1:
                        disabled: true
                        dynamic_vlan:
                          default_vlan_id: 0
                          enabled: true
                          type: string
                          vlans:
                            property1: string
                            property2: string
                        enable_mac_auth: true
                        forwarding: all
                        mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                        mxtunnel_name: string
                        port_auth: none
                        port_vlan_id: 0
                        radius_config:
                          acct_interim_interval: 0
                          acct_servers:
                            - host: string
                              keywrap_enabled: true
                              keywrap_format: string
                              keywrap_kek: string
                              keywrap_mack: string
                              port: 1813
                              secret: string
                          auth_servers:
                            - host: string
                              keywrap_enabled: true
                              keywrap_format: string
                              keywrap_kek: string
                              keywrap_mack: string
                              port: 1812
                              secret: string
                          auth_servers_retries: 3
                          auth_servers_timeout: 5
                          coa_enabled: false
                          coa_port: 3799
                          network: string
                          source_ip: string
                        radsec:
                          enabled: true
                          idle_timeout: 0
                          server_name: string
                          servers:
                            - host: string
                              port: 0
                          use_mxedge: true
                        vlan_id: 0
                        vland_ids:
                          - 0
                        wxtunnel_id: string
                        wxtunnel_remote_id: string
                      property2:
                        disabled: true
                        dynamic_vlan:
                          default_vlan_id: 0
                          enabled: true
                          type: string
                          vlans:
                            property1: string
                            property2: string
                        enable_mac_auth: true
                        forwarding: all
                        mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                        mxtunnel_name: string
                        port_auth: none
                        port_vlan_id: 0
                        radius_config:
                          acct_interim_interval: 0
                          acct_servers:
                            - host: string
                              keywrap_enabled: true
                              keywrap_format: string
                              keywrap_kek: string
                              keywrap_mack: string
                              port: 1813
                              secret: string
                          auth_servers:
                            - host: string
                              keywrap_enabled: true
                              keywrap_format: string
                              keywrap_kek: string
                              keywrap_mack: string
                              port: 1812
                              secret: string
                          auth_servers_retries: 3
                          auth_servers_timeout: 5
                          coa_enabled: false
                          coa_port: 3799
                          network: string
                          source_ip: string
                        radsec:
                          enabled: true
                          idle_timeout: 0
                          server_name: string
                          servers:
                            - host: string
                              port: 0
                          use_mxedge: true
                        vlan_id: 0
                        vland_ids:
                          - 0
                        wxtunnel_id: string
                        wxtunnel_remote_id: string
                    pwr_config:
                      base: 0
                    radio_config:
                      ant_gain_24: 0
                      ant_gain_5: 0
                      ant_gain_6: 0
                      band_24:
                        allow_rrm_disable: true
                        ant_gain: 0
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        channels:
                          - 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: short
                        usage: "24"
                      band_24_usage: "24"
                      band_5:
                        allow_rrm_disable: true
                        ant_gain: 0
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        channels:
                          - 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: short
                        usage: "24"
                      band_5_on_24_radio:
                        allow_rrm_disable: true
                        ant_gain: 0
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        channels:
                          - 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: short
                        usage: "24"
                      band_6:
                        allow_rrm_disable: true
                        ant_gain: 0
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        channels:
                          - 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: short
                        usage: "24"
                      scanning_enabled: true
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    switch_config:
                      enabled: false
                      eth0:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                      eth1:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                      eth2:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                      eth3:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                      module:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                      wds:
                        enable_vlan: true
                        port_vlan_id: 0
                        vlan_ids:
                          - 0
                    usb_config:
                      cacert: string
                      channel: 0
                      enabled: true
                      host: string
                      port: 0
                      type: imagotag
                      verify_cert: true
                    vars: {}
                    x: 0
                    y: 0
            schema:
              items:
                $ref: "#/components/schemas/device_ap"
              type: array
          application/octet-stream:
            schema:
              format: binary
              type: string
      responses:
        "200":
          $ref: "#/components/responses/DevicesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importSiteDevices
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/last_config/count":
    get:
      description: Counts the number of entries in device config history for distinct field with given filters
      operationId: countSiteDeviceLastConfig
      parameters:
        - in: query
          name: distinct
          schema:
            default: mac
            enum:
              - version
              - name
              - site_id
              - mac
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: ap
                    end: 1604310805
                    limit: 10
                    percentage: 100
                    results:
                      - ap: 5c5b35000000
                        count: 1
                      - ap: 5c5b35000001
                        count: 1
                    start: 1604307205
                    total: 2
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: integer
                  limit:
                    type: integer
                  percentage:
                    type: integer
                  results:
                    items:
                      properties:
                        ap:
                          type: string
                        count:
                          type: integer
                      required:
                        - ap
                        - count
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - results
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - percentage
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteDeviceLastConfig
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/last_config/search":
    get:
      description: Search Device Last Configs
      operationId: searchSiteDeviceLastConfigs
      parameters:
        - in: query
          name: device_type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: version
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/ConfigsHistorySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDeviceLastConfigs
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/reprovision":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: "To force all APs to reprovision itself again. "
      operationId: reprovisionSiteAllAps
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: reprovisionSiteAllAps
      tags:
        - Sites Devices APs
  "/api/v1/sites/{site_id}/devices/reset_radio_config":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Reset all APs in the Site to use RRM
      operationId: resetSiteAllApsToUseRrm
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  bands:
                    - "24"
                    - "5"
                    - "6"
                  force: false
            schema:
              properties:
                bands:
                  description: list of bands
                  items:
                    type: string
                  type: array
                force:
                  default: false
                  description: whether to reset those with radio disabled. default is false (i.e. if user intentionally disables a radio, honor it)
                  type: boolean
              required:
                - bands
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: resetSiteAllApsToUseRrm
      tags:
        - Sites Devices APs
  "/api/v1/sites/{site_id}/devices/restart":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Note that only the devices that are connected will be restarted.
      operationId: multiRestartSiteDevices
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  device_ids:
                    - 00000000-0000-0000-1000-5c5b35584a6f
                    - 00000000-0000-0000-1000-5c5b350ea3b3
              example-2:
                value:
                  device_ids:
                    - 421f6eca-6276-4893-bfeb-53cbbbba6f02
                  node: node0
            schema:
              properties:
                device_ids:
                  items:
                    format: uuid
                    type: string
                  type: array
                node:
                  description: |-
                    only for SSR: if node is not present, both nodes are restarted
                    for other devices: node should not be present
                  type: string
              required:
                - device_ids
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiRestartSiteDevices
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/search":
    get:
      description: Search Device
      operationId: searchSiteDevices
      parameters:
        - description: partial / full hostname
          in: query
          name: hostname
          schema:
            type: string
        - description: device type
          in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
        - description: device model
          in: query
          name: model
          schema:
            type: string
        - description: device MAC
          in: query
          name: mac
          schema:
            type: string
        - description: version
          in: query
          name: version
          schema:
            type: string
        - description: power_constrained
          in: query
          name: power_constrained
          schema:
            type: boolean
        - $ref: "#/components/parameters/ip"
        - description: MxTunnel status, up / down
          in: query
          name: mxtunnel_status
          schema:
            enum:
              - up
              - down
            type: string
        - description: Mist Edge id, if AP is connecting to a Mist Edge
          in: query
          name: mxedge_id
          schema:
            format: uuid
            type: string
        - description: LLDP system name
          in: query
          name: lldp_system_name
          schema:
            type: string
        - description: LLDP system description
          in: query
          name: lldp_system_desc
          schema:
            type: string
        - description: LLDP port id
          in: query
          name: lldp_port_id
          schema:
            type: string
        - description: LLDP management ip address
          in: query
          name: lldp_mgmt_addr
          schema:
            type: string
        - description: Channel of band_24
          in: query
          name: band_24_channel
          schema:
            type: integer
        - description: Channel of band_5
          in: query
          name: band_5_channel
          schema:
            type: integer
        - description: Channel of band_6
          in: query
          name: band_6_channel
          schema:
            type: integer
        - description: Port speed of eth0
          in: query
          name: eth0_port_speed
          schema:
            type: integer
        - description: sort options
          in: query
          name: sort
          schema:
            default: timestamp
            enum:
              - timestamp
              - mac
              - model
              - sku
            type: string
        - description: sort options in reverse order
          in: query
          name: desc-sort
          schema:
            enum:
              - timestamp
              - mac
              - model
              - sku
            type: string
        - description: whether to return device stats
          in: query
          name: stats
          schema:
            default: false
            type: boolean
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/DevicesSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDevices
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/upgrade":
    get:
      description: Get all upgrades for site
      operationId: getSiteDevicesUpgrade
      parameters:
        - in: query
          name: status
          schema:
            enum:
              - downloading
              - completed
              - created
              - downloaded
              - upgrading
              - cancelled
              - failed
            type: string
      responses:
        "200":
          $ref: "#/components/responses/DeviceUpgradeArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDevicesUpgrade
      tags:
        - Sites Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Upgrade Multiple Device

        **Note**: this call doesn’t guarantee the devices to be upgraded right away (they may be offline)
      operationId: multiUpgradeSiteDevices
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  canary_phases:
                    - 1
                    - 10
                    - 50
                    - 100
                  device_ids:
                    - string
                  enable_p2p: true
                  force: false
                  max_failure_percentage: 5
                  max_failures:
                    - 0
                  models:
                    - string
                  start_time: 0
                  strategy: big_bang
                  version: stable
            schema:
              $ref: "#/components/schemas/device_upgrade"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/DeviceUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: multiUpgradeSiteDevices
      tags:
        - Sites Devices Upgrades
  "/api/v1/sites/{site_id}/devices/upgrade/{upgrade_id}":
    get:
      description: Get Site Device Upgrade
      operationId: getSiteUpgrade
      responses:
        "200":
          $ref: "#/components/responses/DeviceUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteUpgrade
      tags:
        - Sites Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/upgrade_id"
  "/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":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: cancelSiteDeviceUpgrade
      tags:
        - Sites Devices Upgrades
  "/api/v1/sites/{site_id}/devices/versions":
    get:
      description: Get List of Available Device Versions
      operationId: listSiteAvailableDeviceVersions
      parameters:
        - in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
            type: string
      responses:
        "200":
          $ref: "#/components/responses/DeviceVersion"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAvailableDeviceVersions
      tags:
        - Sites Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/devices/zerioze":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Zeroize all FIPS APs in the Site
      operationId: zeroizeSiteFipsAllAps
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  password: NUKETHESITE
            schema:
              properties:
                password:
                  description: FIPS zeroize password
                  type: string
              required:
                - password
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: zeroizeSiteFipsAllAps
      tags:
        - Sites Devices APs
  "/api/v1/sites/{site_id}/devices/{device_id}":
    delete:
      description: Delete Site Device
      operationId: deleteSiteDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteDevice
      tags:
        - Sites Devices
    get:
      description: Get Device Configuration
      operationId: getSiteDevice
      responses:
        "200":
          $ref: "#/components/responses/Device"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDevice
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    put:
      description: Update Device Configuration
      operationId: updateSiteDevice
      requestBody:
        content:
          application/json:
            examples:
              ap:
                value:
                  aeroscout:
                    enabled: true
                    host: string
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: default
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: true
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    power: 1
                    power_mode: string
                  deviceprofile_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  disable_eth1: true
                  disable_eth2: true
                  disable_eth3: true
                  disable_module: true
                  height: 0
                  image1_url: string
                  iot_config:
                    A1:
                      enabled: true
                      name: string
                      output: false
                      pullup: internal
                    A2:
                      enabled: true
                      name: string
                      output: false
                      pullup: internal
                    A3:
                      enabled: true
                      name: string
                      output: false
                      pullup: internal
                    A4:
                      enabled: true
                      name: string
                      output: false
                      pullup: internal
                    DI1:
                      enabled: true
                      name: string
                      pullup: internal
                    DI2:
                      enabled: true
                      name: string
                      pullup: internal
                    DO:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: 1
                  ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: 192.168.0.1
                    gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    ip: 192.168.0.1
                    ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    mtu: 0
                    netmask: 192.168.0.1
                    netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    type: static
                    type6: static
                    vlan_id: 1
                  led:
                    brightness: 0
                    enabled: true
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mesh:
                    enabled: true
                    group: 0
                    role: base
                  name: string
                  notes: string
                  ntp_servers:
                    - string
                  orientation: 0
                  orientation_overwrite: true
                  poe_passthrough: true
                  port_config:
                    property1:
                      disabled: true
                      dynamic_vlan:
                        default_vlan_id: 1
                        enabled: true
                        type: string
                        vlans:
                          property1: string
                          property2: string
                      enable_mac_auth: true
                      forwarding: all
                      mx_tunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      mxtunnel_name: string
                      port_auth: none
                      port_vlan_id: 1
                      radius_config:
                        acct_interim_interval: 0
                        acct_servers:
                          - host: string
                            port: 0
                            secret: string
                        auth_servers:
                          - host: string
                            port: 0
                            secret: string
                        auth_servers_retries: 0
                        auth_servers_timeout: 0
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                        use_mxedge: true
                      vland_ids:
                        - 0
                      wxtunnel_id: string
                      wxtunnel_remote_id: string
                    property2:
                      disabled: true
                      dynamic_vlan:
                        default_vlan_id: 1
                        enabled: true
                        type: string
                        vlans:
                          property1: string
                          property2: string
                      enable_mac_auth: true
                      forwarding: all
                      mx_tunnel_id: 420f6eca-6276-5993-bfeb-53cbbbba6f01
                      mxtunnel_name: string
                      port_auth: none
                      port_vlan_id: 1
                      radius_config:
                        acct_interim_interval: 0
                        acct_servers:
                          - host: string
                            port: 0
                            secret: string
                        auth_servers:
                          - host: string
                            port: 0
                            secret: string
                        auth_servers_retries: 0
                        auth_servers_timeout: 0
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                        use_mxedge: true
                      vland_ids:
                        - 0
                      wxtunnel_id: string
                      wxtunnel_remote_id: string
                  pwr_config:
                    base: 0
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: "24"
                    scanning_enabled: true
                  switch_config:
                    enabled: true
                    eth0:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth1:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth2:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth3:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    module:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    wds:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                  usb_config:
                    cacert: string
                    channel: 0
                    enabled: true
                    host: string
                    port: 0
                    type: imagotag
                    verify_cert: true
                  vars: {}
                  x: 0
                  y: 0
              gateway:
                value:
                  additional_config_cmds:
                    - set snmp community public
                  deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  dhcpd_config:
                    corp:
                      dns_servers:
                        - 8.8.8.8
                        - 4.4.4.4
                      dns_suffix:
                        - .mist.local
                        - .mist.com
                      fixed_bindings:
                        5684dae9ac8b:
                          ip: 192.168.70.35
                          name: John
                      gateway: 192.168.70.1
                      ip_end: 192.168.70.200
                      ip_start: 192.168.70.100
                      type: local
                    enabled: true
                  extra_routes:
                    0.0.0.0/0:
                      via: 10.2.1.1
                  image1_url: https://url/to/image.png
                  ip_configs:
                    corp:
                      ip: 192.168.10.1
                      type: static
                  managed: false
                  name: corp-a135
                  networks: {}
                  ntp_servers:
                    - pool.ntp.org
                    - time.google.com
                  oob_ip_config:
                    ip: 192.168.50.3
                    netmask: 255.255.255.0
                    type: static
                  port_config:
                    cl-0/0/1:
                      ip_config:
                        type: pppoe
                      usage: wan
                      wan_config:
                        backup_only: true
                    ge-0/0/0:
                      ip_config:
                        type: dhcp
                      usage: wan
                    "ge-0/0/0,ge-7/0/0":
                      clustered: true
                      ip_config: {}
                      reth_idx: 3
                      usage: wan
                    ge-0/0/1-5:
                      usage: lan
                    ge-0/0/7:
                      ip_config:
                        type: static
                      usage: wan
                  port_forward:
                    remote-ssh:
                      ip_port: 10.2.5.3
                      ip_range: 10.2.5.1/32-10.2.5.20/32
                      protocol: tcp
                  vars:
                    RADIUS_IP1: 172.31.2.5
                    RADIUS_SECRET: 11s64632d
              switch:
                value:
                  additional_config_cmds:
                    - set snmp community public
                  deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  disable_auto_config: false
                  image1_url: https://url/to/image.png
                  ip_config:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.254
                    ip: 10.2.1.1
                    netmask: 255.255.255.0
                    network: default
                    type: static
                  managed: false
                  name: corp-a135
                  networks: {}
                  notes: slightly off center
                  ntp_servers:
                    - pool.ntp.org
                    - time.google.com
                  oob_ip_config: {}
                  other_ip_configs:
                    guest:
                      ip: 10.3.3.1
                      netmask: 255.255.255.0
                      type: static
                  port_config:
                    "*":
                      usage: default
                    ge-0/0/0:
                      aggregated: true
                      description: to dist-sw-01
                      usage: uplink
                    ge-0/0/1:
                      dynamic_usage: dynamic
                      usage: default
                    "ge-0/0/8-16,ge-1/0/0-47":
                      usage: ap
                  port_usages: {}
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: 1.2.3.4
                        port: 1812
                        secret: testing123
                    auth_servers:
                      - host: 1.2.3.4
                        port: 1812
                        secret: testing123
                      - host: radius.internal
                        port: 1812
                        secret: testing123
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                  role: access
                  vars:
                    RADIUS_IP1: 172.31.2.5
                    RADIUS_SECRET: 11s64632d
            schema:
              example:
                name: conference room
              oneOf:
                - $ref: "#/components/schemas/device_ap"
                - $ref: "#/components/schemas/device_switch"
                - $ref: "#/components/schemas/device_gateway"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Device"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteDevice
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/{device_id}/arp":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        ARP can be performed on the Device. The output will be available through websocket. As there can be multiple command issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.


        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```json
        { 
         "event": "data", 
         "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd", 
         "data": { 
           "session": "session_id", 
           "raw": 
           "Output": "\tMAC\t\tDEV\tVLAN\tRx Packets\t\t Rx Bytes\t\tTx Packets\t\t Tx Bytes\tFlows\tIdle sec\n-----------------------------------------------------------------------------------------------------------------------"
          } 
        }
        ```
      operationId: arpFromDevice
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  node: node0
            schema:
              properties:
                node:
                  description: only for HA
                  enum:
                    - node0
                    - node1
                  type: string
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: arpFromDevice
      tags:
        - Sites Devices Utilities
  "/api/v1/sites/{site_id}/devices/{device_id}/bounce_port":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Port Bounce can be performed from the Switch.The output will be available through websocket. As there can be multiple command issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```json
        {
            "event": "data",
            "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd",
            "data": {
                "session": "session_id",
                "raw": "Port bounce complete."
            }
        }
        ```
      operationId: portsBounceFromSwitch
      requestBody:
        content:
          application/json:
            examples:
              multiple:
                value:
                  ports:
                    - ge-0/0/0
                    - ge-0/0/1
              single:
                value:
                  port: ge-0/0/0
            schema:
              properties:
                port:
                  description: the port to bounce
                  type: string
                ports:
                  description: list of ports to bounce
                  items:
                    type: string
                  type: array
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: portsBounceFromSwitch
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/cable_test":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        TDR can be performed from the Switch. The output will be available through websocket. As there can be multiple command issued against the same Switch at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```json
        {
            "event": "data",
            "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd",
            "data": {
                "session": "session_id",
                "raw": "Interface TDR detail:\nTest status : Test successfully executed  ge-0/0/0\n"
            }
        }
        ```
      operationId: cableTestFromSwitch
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  port: ge-0/0/0
            schema:
              properties:
                port:
                  description: the port to run the cable test
                  type: string
              required:
                - port
              type: object
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: cableTestFromSwitch
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/check_radius_server":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Ping test from the AP to confirm ‘reachability’ of the Radius server. Utilize Juniper EX switch(to which an AP is connected to) radius test capabilities to get details on the Radius Server ‘availability’.
      operationId: startSiteSwitchRadiusSyntheticTest
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  password: string
                  profile: dot1x
                  user: string
            schema:
              properties:
                password:
                  description: Specify the password associated with the username
                  type: string
                profile:
                  default: dot1x
                  description: Specify the access profile associated with the subscriber
                  type: string
                user:
                  description: Specify the subscriber username to test
                  type: string
              required:
                - user
                - password
              type: object
              x-examples:
                example-1:
                  password: password
                  profile: profilename
                  user: username
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: triggerSiteSwitchRadiusSyntheticTest
      tags:
        - Sites Synthetic Tests
  "/api/v1/sites/{site_id}/devices/{device_id}/clear_arp":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Clear the entire ARP cache or a subset if arguments are provided.

        *Note*: port_id is optional if neither vlan nor ip is specified
      operationId: clearSiteSsrArpCache
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  ip: 10.1.1.1
                  node: node0
                  port_id: wan
                  vlan: 1000
            schema:
              properties:
                ip:
                  description: The IP address for which to clear an ARP entry. port_id must be specified. Both vlan and ip cannot be specified.
                  example: 10.1.1.1
                  type: string
                node:
                  description: only for HA
                  enum:
                    - node0
                    - node1
                  type: string
                port_id:
                  description: The device interface on which to clear the ARP cache.
                  example: wan
                  type: string
                vlan:
                  description: The VLAN on which to clear the ARP cache. port_id must be specified. Both vlan and ip cannot be specified.
                  example: 1000
                  type: integer
              type: object
          application/xml:
            schema:
              properties:
                ip:
                  description: The IP address for which to clear an ARP entry. port_id must be specified. Both vlan and ip cannot be specified.
                  type: string
                port_id:
                  description: The device interface on which to clear the ARP cache.
                  type: string
                vlan:
                  description: The VLAN on which to clear the ARP cache. port_id must be specified. Both vlan and ip cannot be specified.
                  type: integer
              type: object
              x-examples:
                example-1:
                  ip: 10.1.1.1
                  port_id: wan
                  vlan: 1000
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          description: |-
            port_id must be specified with vlan or ip
            Both vlan and ip cannot be specified
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteSsrArpCache
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/clear_bgp":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Clear routes associated with one or all BGP neighbors
      operationId: clearSiteSsrBgpRoutes
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  neighbor: all
                  type: in
                  vrf: TestVrf
            schema:
              description: ""
              properties:
                neighbor:
                  description: neighbor ip-address or `all`
                  minLength: 1
                  type: string
                type:
                  default: hard
                  enum:
                    - in
                    - out
                    - hard
                    - soft
                  minLength: 1
                  type: string
                vrf:
                  description: vrf name
                  minLength: 1
                  type: string
              required:
                - neighbor
              type: object
              x-examples:
                example-1:
                  neighbor: all
                  type: in
                  vrf: TestVrf
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          description: parameter neighbor absent
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteSsrBgpRoutes
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/clear_bpdu_error":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Clear bridge protocol data unit (BPDU) error condition caused by the detection of a possible bridging loop from Spanning Tree Protocol (STP) operation that renders the port unoperational.
      operationId: clearBpduErrosFromPortsOnSwitch
      requestBody:
        content:
          application/json:
            schema:
              properties:
                port:
                  description: the port on which to clear the detected BPDU error, or `all` for all ports
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          description: Port not specified
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearBpduErrosFromPortsOnSwitch
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/clear_macs":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Clear all learned MAC addresses, including persistent MAC addresses, on a port.
      operationId: clearAllLearnedMacsFromPortOnSwitch
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  ports:
                    - ge-0/0/0.0
            schema:
              properties:
                ports:
                  description: the ports on which to clear the detected BPDU error, or `["all"]` for all ports
                  items:
                    type: string
                  type: array
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearAllLearnedMacsFromPortOnSwitch
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/config_cmd":
    get:
      description: |-
        Get Config CLI Commands
        For a brown-field switch deployment where we adopted the switch through Adoption Command, we do not wipe out / overwrite the existing config automatically. Instead, we generate CLI commands that we would have generated. The user can inspect, modify, and incorporate this into their existing config manually.

        Once they feel comfortable about the config we generate, they can enable allow_mist_config where we will take full control of their config like a claimed switch
      operationId: getSiteDeviceConfigCmd
      parameters:
        - description: Make output cmds sorted (for better readability) or not.
          in: query
          name: sort
          schema:
            default: "false"
            enum:
              - "true"
              - "false"
            type: string
      responses:
        "200":
          $ref: "#/components/responses/DeviceConfigCmd"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceConfigCmd
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
  "/api/v1/sites/{site_id}/devices/{device_id}/ha":
    delete:
      description: Delete HA Cluster
      operationId: deleteSiteDeviceHaCluster
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteDeviceHaCluster
      tags:
        - Sites Devices WAN Edges HA
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Create HA Cluster
        Both nodes has to be in the same site. We expect the user to configure ha_sync / ha_data port in port_configs already

        ### SRX cabling

        see [Chassis Cluster User Guide for SRX Series Devices](https://www.juniper.net/documentation/us/en/software/junos/chassis-cluster-security-devices/topics/concept/chassis-cluster-srx-series-node-interface-understanding.html) Here’s the recommended cabling.

        #### SRX300

        From ZTP / default state, ge-0/0/0 and ge-0/0/7 (SFP) are default WAN ports and will get DHCP IP. However, ge-0/0/0 becomes OOB/fxp0 after cluster is enabled (i.e. using it for reach Mist is not recommended)

        1.  form cluster in UI
        2.  configure ge-0/0/7,ge-1/0/7 for WAN (reth0)
        3.  configure ge-0/0/2,ge-1/0/2 for ha_data
        4.  configure ge-0/0/3- for LAN or additional WAN e.g.
            

        ``` json
        {
            "port_config": {
                "ge-0/0/2,ge-1/0/2": {
                    "usage": "ha_data"
                },
                "ge-0/0/7,ge-1/0/7": {
                    "usage": "wan",
                    "redundant": true,
                    "reth_idx": 0,
                    "ip_config": {"type": "dhcp"}
                },
            }
        }

        ```

        1.  connect ge-0/0/1 back to back for ha_control
        2.  connect ge-0/0/2 back to back for ha_data
        3.  connect both ge-0/0/7 to uplink switch to WAN and to reach Mist
        4.  power up both devices
        5.  it takes about 30 minutes for the cluster to form
            

        #### SRX320

        From ZTP / default state, ge-0/0/0, ge-0/0/7 (SFP) and cl-1/0/0 (LTE) are default WAN ports and will get DHCP IP. However, ge-0/0/0 becomes OOB/fxp0 after cluster is enabled (i.e. using it for reach Mist is not recommended)

        ##### ZTP via ge-0/0/7

        Similar to SRX300

        ##### ZTP via cl-1/0/0 (LTE)

        1.  form cluster in UI
        2.  configure cl-1/0/0, cl-3/0/0 as WAN (reth0)
        3.  configure ge-0/0/2,ge-3/0/2 for ha_data
        4.  same as above
            

        #### SRX340 / SRX345 / SRX380

        SRX340/SRX345 has dedicated OOB/fxp0 ports

        1.  form cluster in UI
        2.  configure ge-0/0/0,ge-5/0/0 for WAN (reth0)
        3.  configure ge-0/0/2,ge-5/0/2 for ha_data
        4.  configure ge-0/0/3- for LAN or additional WAN
        5.  connect ge-0/0/0 to uplink switch to WAN and to reach Mist
        6.  connect ge-0/0/1 back-to-back for ha_control
        7.  connect ge-0/0/2 back-to-back for ha_data (fabric); or for SRX380, xe-0/0/16 if 10G SFP+ is used
        8.  connect ge-0/0/3- to LAN or additional WANs
            

        #### SRX550

        ge-0/0/0 becomes OOB/fxp0 after cluster is enabled, make suenable oob_ip_config as dhcp to maintain cloud connectivity

        1.  connect ge-0/0/0 to reach Mist (after cluster is fully up, this port becomes OOB/fxp0)
        2.  connect ge-0/0/1 back-to-back for ha_control
        3.  connect ge-0/0/2 back-to-back for ha_data (fabric)
        4.  connect ge-0/0/3 to WAN (after cluster is up, intended to be used for reth0)
        5.  connect ge-0/0/4- to LAN or additional WANs
            

        #### SRX1500

        SRX1500 has, additionally, dedicated HA Control port

        1.  form cluster in UI
        2.  configure ge-0/0/0,ge-5/0/0 for WAN (reth0)
        3.  configure ge-0/0/1,ge-5/0/1 for ha_data
        4.  configure ge-0/0/2- for LAN or additional WAN
        5.  connect dedicated ha_control back-to-back
        6.  connect ge-0/0/0 to uplink switch to WAN and to reach Mist
        7.  connect ge-0/0/1 back-to-back for ha_data
        8.  connect ge-0/0/2- to LAN or additional WANs
            

        #### SRX4100

        SRX4100 has dedicated ha_control and ha_data (fabric) ports

        1.  connect dedicated ha_control back-to-back
        2.  connect dedicated ha_data back-to-back
        3.  connect xe-0/0/0 to WAN to reach Mist
        4.  connect xe-0/0/1- to LAN or additional WANs
            

        #### VSRX

        When standalone, VSRX has fxp0 as first Network Adapter, then ge-0/0/0-N When clustered, VSRX has fxp0, em0, then ge-0/0/0-N

        1.  connect net0 (fxp0) to WAN to reach Mist
        2.  connect net1 back-to-back for ha_control
        3.  connect net2 (ge-0/0/0) back-to-back for ha_data (fab0/fab1)
        4.  connect net3 (ge-0/0/1) to WAN, intended to be used for reth0
        5.  connect net4 (ge-0/0/2) to LAN
            

        SRX340/SRX345 has dedicated OOB/fxp0 ports VSRX has fxp0 as first Network Adapter, then ge-0/0/0-N

        1.  connect ge-0/0/0 to WAN to reach Mist
        2.  connect ge-0/0/1 back-to-back for ha_control
        3.  connect ge-0/0/2 back-to-back for ha_data (fabric); or for SRX380, xe-0/0/16 if 10G SFP+ is used
        4.  connect ge-0/0/3- to LAN or additional WANs
            

        #### SRX550

        ge-0/0/0 becomes OOB/fxp0 after cluster is enabled, make suenable oob_ip_config as dhcp to maintain cloud connectivity

        1.  connect ge-0/0/0 to reach Mist (after cluster is fully up, this port becomes OOB/fxp0)
        2.  connect ge-0/0/1 back-to-back for ha_control
        3.  connect ge-0/0/2 back-to-back for ha_data (fabric)
        4.  connect ge-0/0/3 to WAN (after cluster is up, intended to be used for reth0)
        5.  connect ge-0/0/4- to LAN or additional WANs
            

        #### SRX1500

        SRX1500 has, additionally, dedicated HA Control port

        1.  connect dedicated ha_control back-to-back
        2.  connect ge-0/0/0 to WAN to reach mist
        3.  connect ge-0/0/1 back-to-back for ha_data
        4.  connect ge-0/0/2- to LAN or additional WANs
            

        #### SRX4100

        SRX4100 has dedicated ha_control and ha_data (fabric) ports

        1.  connect dedicated ha_control back-to-back
        2.  connect dedicated ha_data back-to-back
        3.  connect xe-0/0/0 to WAN to reach Mist
        4.  connect xe-0/0/1- to LAN or additional WANs
      operationId: createSiteDeviceHaCluster
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  nodes:
                    - mac: aff827549235
                    - mac: 8396cd006c8c
            schema:
              description: ""
              properties:
                nodes:
                  items:
                    properties:
                      mac:
                        minLength: 1
                        type: string
                    required:
                      - mac
                  minItems: 1
                  type: array
                  uniqueItems: true
              required:
                - nodes
              type: object
              x-examples:
                example-1:
                  nodes:
                    - mac: aff827549235
                    - mac: 8396cd006c8c
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteDeviceHaCluster
      tags:
        - Sites Devices WAN Edges HA
    put:
      deprecated: true
      description: Swap nodes on the HA Cluster
      operationId: swapSiteDeviceHaClusterNode
      requestBody:
        content:
          application/json:
            schema:
              description: ""
              properties:
                mac:
                  description: |-
                    when `op` ==`replacement_nodeX`, new node1
                    's MAC, the device has to be standalone and assigned to the same site
                  type: string
                op:
                  default: swap
                  enum:
                    - swap
                    - replace_node1
                  minLength: 1
                  type: string
              required:
                - op
              type: object
              x-examples:
                example-1:
                  op: swap
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: swapSiteDeviceHaClusterNode
      tags:
        - Sites Devices WAN Edges HA
  "/api/v1/sites/{site_id}/devices/{device_id}/image{image_number}":
    delete:
      description: Delete image from a device
      operationId: deleteSiteDeviceImage
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteDeviceImage
      tags:
        - Sites Devices
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
      - in: path
        name: image_number
        required: true
        schema:
          type: integer
    post:
      description: Attach up to 3 images to a device
      operationId: addSiteDeviceImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/image_upload"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: addSiteDeviceImage
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/{device_id}/iot":
    get:
      description: Returns the current state of each enabled IoT pin configured as an output.
      operationId: getSiteDeviceIotPort
      responses:
        "200":
          $ref: "#/components/responses/DeviceIot"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceIotPort
      tags:
        - Sites Devices APs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    put:
      description: |-
        **Note**: For each IoT pin referenced:
         * The pin must be enabled using the Device `iot_config` API
         * The pin must support the output direction
      operationId: setSiteDeviceIotPort
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  A1: 1
                  DO: 0
            schema:
              additionalProperties:
                type: integer
              description: the property key is the IoT port name (e.g A0)
              example:
                A1: 1
                DO: 0
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/DeviceIot"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: setSiteDeviceIotPort
      tags:
        - Sites Devices APs
  "/api/v1/sites/{site_id}/devices/{device_id}/local_port_config":
    delete:
      description: Sometimes HelpDesk Admin needs to change port configs
      operationId: deleteSiteLocalSwitchPortConfig
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteLocalSwitchPortConfig
      tags:
        - Sites Devices Switches
    parameters:
      - in: path
        name: site_id
        required: true
        schema:
          example: 000000ab-00ab-00ab-00ab-0000000000ab
          format: uuid
          type: string
      - in: path
        name: device_id
        required: true
        schema:
          example: 000000ab-00ab-00ab-00ab-0000000000ab
          format: uuid
          type: string
    put:
      description: Sometimes HelpDesk Admin needs to change port configs
      operationId: updateSiteLocalSwitchPortConfig
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  ae_disable_lacp: true
                  ae_idx: 0
                  aggregated: false
                  description: string
                  disable_autoneg: true
                  duplex: auto
                  dynamic_usage: string
                  esilag: true
                  poe_disabled: true
                  speed: auto
                  usage: string
            schema:
              $ref: "#/components/schemas/junos_port_config"
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteLocalSwitchPortConfig
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/locate":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    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: startSiteLocateDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: startSiteLocateDevice
      tags:
        - Sites Devices APs
  "/api/v1/sites/{site_id}/devices/{device_id}/ping":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Ping from AP, Switch and SSR

        Ping can be performed from the Device. The output will be available through websocket. As there can be multiple command issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```json
        {
            "event": "data",
            "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd",
            "data": {
                "session": "session_id",
                "raw": "64 bytes from 23.211.0.110: seq=8 ttl=58 time=12.323 ms\n"
            }
        }
        ```
      operationId: pingFromDevice
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  count: 10
                  host: 1.1.1.1
            schema:
              properties:
                count:
                  default: 10
                  type: integer
                egress_interface:
                  description: Interface through which packet needs to egress
                  type: string
                host:
                  example: 1.1.1.1
                  format: ipv4
                  type: string
                node:
                  description: Only for HA
                  enum:
                    - node0
                    - node1
                  type: string
                size:
                  default: 56
                  maximum: 65535
                  minimum: 56
                  type: integer
              required:
                - host
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: pingFromDevice
      tags:
        - Sites Devices Utilities
  "/api/v1/sites/{site_id}/devices/{device_id}/poll_stats":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: This API can be used to poll statistics from the Switch proactively once. After it is called, the statistics will be pushed back to the cloud within the statistics interval.
      operationId: pollSiteSwitchStats
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: pollSiteSwitchStats
      tags:
        - Sites Devices Switches
  "/api/v1/sites/{site_id}/devices/{device_id}/release_dhcp":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Releases an active DHCP lease.
      operationId: releaseSiteSsrDhcpLease
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  node: node0
                  port: string
            schema:
              properties:
                node:
                  description: only for HA
                  enum:
                    - node0
                    - node1
                  type: string
                port:
                  description: The nework interface on which to release the current DHCP release
                  example: wan-interface
                  minLength: 1
                  type: string
              required:
                - port
              type: object
              x-examples:
                example-1:
                  network_interface: wan-interface
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          description: Parameter `port ` absent
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: releaseSiteSsrDhcpLease
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/request_ztp_password":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: In the case where soemthing happens during/after ZTP, the root-password is modified (required for ZTP to set up outbound-ssh) but the user-defined password config has not be configured. This API can be used to retrieve the temporary password.
      operationId: getSiteDeviceZtpPassword
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    root_password: ef8070ef8f924edb592e1819ed64b31172ab8de9d5cde75d3f46acd9506202ab9b1cbb97e381c5aa11037f17e5ed7b4b609461cd813d944670549d410ef82f2e
              schema:
                description: ""
                properties:
                  root_password:
                    minLength: 1
                    type: string
                required:
                  - root_password
                type: object
                x-examples:
                  example-1:
                    root_password: ef8070ef8f924edb592e1819ed64b31172ab8de9d5cde75d3f46acd9506202ab9b1cbb97e381c5aa11037f17e5ed7b4b609461cd813d944670549d410ef82f2e
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceZtpPassword
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/{device_id}/resolve_dns":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        DNS resolutions are performed on the Device. The output will be available through websocket. As there can be multiple command issued against the same SSR at the same time and the output all goes through the same websocket stream, `session` is used for demux.
         
         #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```
         Router      | Hostname               | Resolved | Last Resolved        | Expiration
        -------------|------------------------|----------|----------------------|---------------------
         test-device | xxx.yyy.net            | Y        | 2022-03-28T03:56:49Z | 2022-03-28T03:57:49Z
        ```
      operationId: testSiteSsrDnsResolution
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: testSiteSsrDnsResolution
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/restart":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Restart / Reboot a device
      operationId: restartSiteDevice
      requestBody:
        content:
          application/json:
            schema:
              properties:
                member:
                  description: optional for VC member
                  type: string
                node:
                  description: |-
                    only for SSR: if node is not present, both nodes are restarted
                    for other devices: node should not be present
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: restartSiteDevice
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/{device_id}/service_ping":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Ping from SSR

        Service Ping can be performed from the Device. The output will be available through websocket. As there can be multiple command issued against the same device at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```json
        {
            "event": "data",
            "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd",
            "data": {
                "session": "session_id",
                "raw": "64 bytes from 23.211.0.110: seq=8 ttl=58 time=12.323 ms\n"
            }
        }
        ```
      operationId: servicePingFromSsr
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  count: 10
                  host: 1.1.1.1
                  service: web-session
            schema:
              properties:
                count:
                  default: 10
                  type: integer
                host:
                  format: ipv4
                  type: string
                service:
                  description: ping packet takes the same path as the service
                  type: string
                size:
                  default: 56
                  maximum: 65535
                  minimum: 56
                  type: integer
                tenant:
                  description: tenant context in which the packet is sent
                  type: string
              required:
                - host
                - service
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: servicePingFromSsr
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/show_route":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Get routes from the Device. The output will be available through websocket. As there can be multiple command issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```
        admin@labsystem1.fiedler# show bgp neighbors
        BGP neighbor is 192.168.4.1, remote AS 4200000001, local AS 4200000128, external
        link
          BGP version 4, remote router ID 1.1.1.1
          BGP state = Established, up for 00:27:25
          Last read 00:00:25, hold time is 90, keepalive interval is 30 seconds
          Configured hold time is 90, keepalive interval is 30 seconds
          Neighbor capabilities:
            4 Byte AS: advertised and received
            Route refresh: advertised and received(old &amp; new)
            Address family IPv4 Unicast: advertised and received
            Graceful Restart Capabilty: advertised and received
              Remote Restart timer is 120 seconds
              Address families by peer:
                none
                ...
        ```
      operationId: getSiteSsrAndSrxRoutes
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  neighbor: 192.168.4.1
                  prefix: 192.168.0.5/30
                  protocol: bgp
                  route: advertised
                  vrf_name: default
            schema:
              properties:
                neighbor:
                  example: 192.168.4.1
                  type: string
                node:
                  description: Only for HA
                  enum:
                    - node0
                    - node1
                  type: string
                prefix:
                  description: route prefix
                  example: 192.168.0.5/30
                  type: string
                protocol:
                  description: only bgp is supported
                  example: bgp
                  type: string
                route:
                  description: |-
                    if specified, dump both received and advertised
                    * for SSR, show bgp neighbors 10.250.18.202 received-routes/advertised-routes
                    * for SRX, show route receive-protocol/advertise-protocol bgp 192.168.255.12
                  enum:
                    - received
                    - advertised
                  example: advertised
                  type: string
                vrf_name:
                  example: default
                  type: string
              type: object
              x-examples:
                example-1:
                  neighbor: 192.168.4.1
                  prefix: 192.168.0.5/30
                  protocol: bgp
                  route: advertised
                  vrf_name: default
        description: all attributes are optional
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSsrAndSrxRoutes
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/show_service_path":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Get service path information of the Device. The output will be available through websocket. As there can be multiple command issued against the same device at the same time and the output all goes through the same websocket stream, session is introduced for demux.


        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```
        show service-path

        Service    Service-route     Type              Destination  Next-Hop  Interface  Vector  Cost  Rate  Capacity        State

        Web        web-route1        service-agent     4.4.4.4      1.1.1.2     lan        red     10    1    200/3000       Up*
        Web        web-route1        service-agent     4.4.4.4      1.1.1.3     lan        red     10    1    200/3000       Up
        Web        web-route2        service-agent     5.5.5.5      2.2.2.2     lan       blue     20    2    50/unlimited   Down
        Login      <None>            BgpOverSVR        10.1.1.1     1.2.3.4     wan        red     10    3        -          Up
        Login      <None>            BgpOverSVR        11.1.1.1     1.2.3.4     wan        red     10    1        -          Up
        App1       <None>            Routed                -           -         -          -      -     -        -          -
        App1       learned-routed    Routed                -           -         -          -      -     -        -          -
        ```
      operationId: getSiteSsrServicePath
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  node: node0
                  service_name: any
            schema:
              description: The exact service name for which to display the service path
              properties:
                node:
                  description: only for HA
                  enum:
                    - node0
                    - node1
                  type: string
                service_name:
                  example: any
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSsrServicePath
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/show_session":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: device_id
        required: true
        schema:
          type: string
    post:
      description: |-
        Get active sessions passing through the Device. The output will be available through websocket. As there can be multiple command issued against the same device at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
        ##### Example output from ws stream
        ```
        admin@ssr.node# show sessions
        Fri 2020-04-17 16:55:34 UTC

        Node: node1

        ====================================== ===== ============= =========== ========== ====== ======= ================= ========== ================= =========== ================= ========== =================== ========= =================
         Session Id                             Dir   Service       Tenant      Dev Name   VLAN   Proto   Src IP            Src Port   Dest IP           Dest Port   NAT IP            NAT Port   Payload Encrypted   Timeout   Uptime
        ====================================== ===== ============= =========== ========== ====== ======= ================= ========== ================= =========== ================= ========== =================== ========= =================
         01187fb8-765a-45e5-ae90-37d77f15e292   fwd   Internet      lanSubnet   lan           0   udp     192.168.0.28         44674   35.166.173.18          9930   96.230.191.130       19569   false                   154   0 days  0:00:28
         01187fb8-765a-45e5-ae90-37d77f15e292   rev   Internet      lanSubnet   wan           0   udp     35.166.173.18         9930   96.230.191.130        19569   0.0.0.0                  0   false                   154   0 days  0:00:28
         0859a4ae-bcff-4aa6-b812-79a5236a6c13   fwd   Internet      lanSubnet   lan           0   tcp     192.168.0.41         60843   17.249.171.246          443   96.230.191.130       51941   false                     2   0 days  0:00:10

        ```
      operationId: getSiteSsrAndSrxSessions
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  node: node0
                  service_name: any
            schema:
              properties:
                node:
                  description: "only for "
                  enum:
                    - node0
                    - node1
                  type: string
                service_name:
                  description: The exact service name for which to display the active sessions
                  example: any
                  type: string
              type: object
              x-examples:
                example-1:
                  service_name: any
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSsrAndSrxSessions
      tags:
        - Sites Devices WAN Edges
  "/api/v1/sites/{site_id}/devices/{device_id}/snapshot":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Create recovery device snapshot (Available on Junos OS EX2300-, EX3400-, EX4400- devices)
      operationId: createSiteDeviceSnapshot
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    status_id: string
                    staus: starting
                    timestamp: 0
              schema:
                properties:
                  status_id:
                    description: the internal status id
                    type: string
                  staus:
                    enum:
                      - starting
                      - inprogress
                      - success
                      - error
                      - scheduled
                    type: string
                  timestamp:
                    type: number
                type: object
          description: OK
        "400":
          content:
            application/json:
              examples:
                cannot snapshot an offline device:
                  value: cannot snapshot an offline device
                snapshot not supported:
                  value: snapshot not supported
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteDeviceSnapshot
      tags:
        - Sites Devices Utilities
  "/api/v1/sites/{site_id}/devices/{device_id}/support":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Support / Upload device support files

        #### Info Param
        **Parameter**|**Type**|**Description** 
         :-------------: |:-------------: |:-------------: 
        process|string|Upload 1 file with output of show system processes extensive
        outbound-ssh|string|Upload 1 file that concatenates all /var/log/outbound-ssh.log* files
        messages|string|Upload 1 to 10 /var/log/messages* files
        core-dumps|string|Upload all core dump files, if any
        full|string|Upload 1 file with output of request support information, 1 file that concatenates all /var/log/outbound-ssh.log files, all core dump files, and the 3 most recent /var/log/messages files
      operationId: uploadSiteDeviceSupportFile
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  info: full
            schema:
              properties:
                info:
                  default: full
                  description: "optional choice: process, outbound-ssh, and full (default)"
                  enum:
                    - process
                    - outbound-ssh
                    - full
                  type: string
                node:
                  description: "optional: for SSR, if node is not present, both nodes support files are uploaded"
                  type: string
                num_messages_files:
                  default: 1
                  description: "optional: number of most recent messages files to upload."
                  maximum: 10
                  minimum: 1
                  type: integer
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          description: Device not online
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uploadSiteDeviceSupportFile
      tags:
        - Sites Devices
  "/api/v1/sites/{site_id}/devices/{device_id}/synthetic_test":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |
        Device Synthetic Test
      operationId: StartSiteDeviceSyntheticTest
      requestBody:
        content:
          application/json:
            schema:
              properties:
                hostname:
                  description: if `type`==`dns`
                  type: string
                ip:
                  description: if `type`==`arp`
                  type: string
                password:
                  description: if `type`==`radius`
                  type: string
                type:
                  enum:
                    - dns
                    - arp
                    - dhcp
                    - curl
                    - radius
                    - speedtest
                    - dhcp6
                  type: string
                url:
                  description: if `type`==`curl`
                  type: string
                username:
                  description: if `type`==`radius`
                  type: string
                vlan_id:
                  type: integer
              type: object
              x-examples:
                example-1:
                  hostname: google.com
                  ip: 192.168.3.5
                  password: test123
                  type: dns
                  url: https://www.example.com
                  username: user
                  vlan_id: 30
      responses:
        "200":
          description: scheduled
        "400":
          description: Device not online / Device not supported / Already in progress
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: triggerSiteDeviceSyntheticTest
      tags:
        - Sites Synthetic Tests
  "/api/v1/sites/{site_id}/devices/{device_id}/traceroute":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: |-
        Traceroute can be performed from the Device. The output will be available through websocket. As there can be multiple command issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            "subscribe": "/sites/{site_id}/devices/{device_id}/cmd"
        }
        ```
      operationId: tracerouteFromDevice
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  host: string
                  port: 33434
                  protocol: udp
            schema:
              properties:
                host:
                  description: host name
                  type: string
                port:
                  default: 33434
                  description: when protocol=udp, the udp port to use
                  type: integer
                protocol:
                  default: udp
                  description: udp (default) /icmp
                  enum:
                    - udp
                    - icmp
                  type: string
                timeout:
                  default: 60
                  description: maximum time in seconds to wait for the response
                  type: integer
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Session"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: tracerouteFromDevice
      tags:
        - Sites Devices Utilities
  "/api/v1/sites/{site_id}/devices/{device_id}/unlocate":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Stop Locate a Device
      operationId: stopSiteLocateDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: stopSiteLocateDevice
      tags:
        - Sites Devices APs
  "/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: upgradeSiteDevice
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  version: 3.1.5
            schema:
              properties:
                version:
                  default: stable
                  type: string
              required:
                - version
              type: object
      responses:
        "200":
          $ref: "#/components/responses/UpgradeStatus"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeSiteDevice
      tags:
        - Sites Devices Upgrades
  "/api/v1/sites/{site_id}/devices/{device_id}/vc":
    delete:
      description: |-
        When all the member switches of VC are removed and only member ID 0 is left, the cloud would detect this situation and automatically changes the single switch to non-VC role.

        For some unexpected cases that the VC is gone and disconncted, the API below could be used to change the state of VC’s switches to be standalone. After it is executed, all the switches will be shown as standalone switches under Inventory.
      operationId: deleteSiteVirtualChassis
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteVirtualChassis
      tags:
        - Sites Devices Switches Virtual Chassis
    get:
      description: |-
        Get VC Status

        The API returns a combined view of the VC status which includes topology and stats_
      operationId: getSiteDeviceVirtualChassis
      responses:
        "200":
          $ref: "#/components/responses/Vc"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceVirtualChassis
      tags:
        - Sites Devices Switches Virtual Chassis
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    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 choosen as the VC master first. And the 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 choosen 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: createSiteVirtualChassis
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  members:
                    - mac: aff827549235
                      vc_ports:
                        - xe-0/1/0
                    - mac: 8396cd006c8c
                      vc_ports:
                        - xe-0/1/0
                        - xe-0/1/1
                    - mac: 8396cd00888c
                      vc_ports:
                        - xe-0/1/0
            schema:
              $ref: "#/components/schemas/device_switch_vc"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Vc"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteVirtualChassis
      tags:
        - Sites Devices Switches Virtual Chassis
    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.

        ## Change to use preprovisioned VC
        To 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. Member-id will be determined by the sequence of listed members.

        Notice: to configure preprovisioned VC, every member of the VC must be in the inventory.

        ## Add new members
        For 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.

        For EX2300 VC, adding new members requires to follow the procedures below:
        1. Powering on the new member switches and ensuring cables are not connected to any VC ports.
        2. Claim or adopt all new member switches under the VC’s organization Inventory
        3. Assign all new member switches to the same Site as the VC
        4. Invoke vc command to add switches to the VC.
        5. Connect the cables to the VC ports for these switches
        6. After a while, the Org’s Inventory shows this new switches has been added into the VC.

        ## Removing member switch
        To remove a member switch from the VC, following the procedures below:

        1. Ensuring the VC is connected to the cloud first
        2. Unplug the cable from the VC port of the switch
        3. Waiting for the VC state (vc_state) of this switch is changed to not-present
        4. Invoke update_vc with remove to remove this switch from the VC
        5. The Org’s Inventory shows the switch is removed.

        Please notice that member ID 0 (fpc0) cannot be removed. When a VC has two switches left, unpluging the cable may result in the situation that fpc0 becomes a line card (LC). When this situation is happened, please re-plug in the cable, wait for both switches becoming present (show virtual-chassis) and then removing the cable again.

        ## Renumber a member switch
        When 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:

        1. Replace a non-fpc0 member switch
        2. Replace fpc0. When fpc0 is relaced, PAPI device config and JUNOS config will be both updated.

        For renumber to work, the following procedures are needed: 
        1. Ensuring the VC is connected to the cloud and the state of the member switch to be replaced must be non present. 
        2. Adding the new member switch to the VC 
        3. Waiting for the VC state (vc_state) of this VC to be updated to API server 
        4. Invoke vc with renumber to replace the new member switch from fpc X to
      operationId: updateSiteVirtualChassisMember
      requestBody:
        content:
          application/json:
            examples:
              Adding two new switches into the VC (MAC aff827549235):
                value:
                  members:
                    - mac: aff827549235
                      member: 0
                      vc_ports:
                        - xe-0/1/1
                    - mac: aff827549235
                      member: 2
                      vc_ports:
                        - xe-0/1/1
                    - mac: 8396cd00777c
                      vc_ports:
                        - xe-0/1/0
                    - mac: 8396cd00888c
                      vc_ports:
                        - xe-0/1/0
                  op: add
              Removing two new switches into the VC (MAC aff827549235):
                value:
                  members:
                    - member: 2
                    - member: 3
                  op: remove
              Renumber member ID 3 to member ID 2:
                value:
                  member: 3
                  new-member: 2
                  op: renumber
              preprovisioned VC:
                value:
                  member: 0
                  members:
                    - mac: string
                      member: 0
                      vc_ports:
                        - string
                      vc_role: master
                  new-member: 0
                  op: add
            schema:
              $ref: "#/components/schemas/device_switch_vc"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Vc"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteVirtualChassisMember
      tags:
        - Sites Devices Switches Virtual Chassis
  "/api/v1/sites/{site_id}/devices/{device_id}/vc/vc_port":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    post:
      description: Set VC port
      operationId: setSiteVcPort
      requestBody:
        content:
          application/json:
            examples:
              Delete VC port of xe-0/1/1 of member 0 and member 2:
                value:
                  members:
                    - member: 0
                      vc_ports:
                        - xe-0/1/1
                    - member: 2
                      vc_ports:
                        - xe-0/1/1
                  op: delete
              Set VC port of xe-0/1/1 of member 0 and member 2:
                value:
                  members:
                    - member: 0
                      vc_ports:
                        - xe-0/1/1
                    - member: 2
                      vc_ports:
                        - xe-0/1/1
                  op: set
            schema:
              description: ""
              properties:
                members:
                  items:
                    properties:
                      member:
                        type: number
                      vc_ports:
                        items:
                          type: string
                        type: array
                    required:
                      - member
                    type: object
                  minItems: 1
                  type: array
                  uniqueItems: true
                op:
                  enum:
                    - set
                    - delete
                  minLength: 1
                  type: string
              required:
                - op
                - members
              type: object
              x-examples:
                example-1:
                  members:
                    - member: 0
                      vc_ports:
                        - xe-0/1/1
                    - member: 2
                      vc_ports:
                        - xe-0/1/1
                  op: set
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: setSiteVcPort
      tags:
        - Sites Devices Switches Virtual Chassis
  "/api/v1/sites/{site_id}/events/fast_roam":
    get:
      description: Get Roaming Events data
      operationId: getSiteRoamingEvents
      parameters:
        - description: event type
          in: query
          name: type
          schema:
            enum:
              - success
              - fail
              - none
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/EventsFastroam"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteRoamingEvents
      tags:
        - Sites Events
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/events/interference":
    get:
      description: Get Interference Events
      operationId: getSiteInterferenceEvents
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/EventsInterference"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteInterferenceEvents
      tags:
        - Sites Events
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/events/system/count":
    get:
      description: Count System Events
      operationId: countSiteSystemEvents
      parameters:
        - in: query
          name: distinct
          schema:
            default: type
            enum:
              - type
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteSystemEvents
      tags:
        - Sites Events
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/events/system/search":
    get:
      description: Search System Events
      operationId: searchSiteSystemEvents
      parameters:
        - in: query
          name: type
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/DevicesEventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteSystemEvents
      tags:
        - Sites Events
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/evpn_topologies":
    get:
      description: Get the existing EVPN topology
      operationId: getSiteEvpnTopology
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteEvpnTopology
      tags:
        - Sites EVPN Topologies
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        While all the `evpn_id` / `downlink_ips` can be specifidd by hand, the easiest way is to call the `build_vpn_topology` API, allowing you to examine the diff, and update it yourself. You can also simply call it with `overwrite=true` which will apply the updates for you.

        **Notes:**
        1. You can use `core` / `distribution` / `access` to create a CLOS topology
        2. You can also use `core` / `distribution` to form a 2-tier EVPN topology where ESI-Lag is configured distribution to connect to access switches
        3. In a small/medium campus, `collapsed-core` can be used where core switches are the inter-connected to do EVPN
        4. The API uses a few pre-defined parameters and best-practices to generate the configs. It can be customized by using `evpn_options` in Site Setting / Network Template. (e.g. a different subnet for the underlay)

        #### Collapsed Core
        In a small-medium campus, EVPN can also be enabled only at the core switches (up to 4) by assigning all participating switches with `collapsed-core role`. When there are more than 2 switches, a ring-like topology will be formed.

        #### ESI-Lag
        If the access switchess does not have EVPN support, you can take advantage of EVPN by setting up ESI-Lag on distribution switches

        #### Leaf / Access / Collapsed-Core
        For leaf nodes in a EVPN topology, you’d have to configure the IPs for networks that would participate in EVPN. Optionally, VRFs to isolate traffic from one tenant verus another
      operationId: createSiteEvpnTopology
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  name: CC
                  overwrite: true
                  pod_names:
                    "1": default
                    "2": default
                  switches:
                    - mac: 5c5b35000003
                      role: collapsed-core
                    - mac: 5c5b35000004
                      role: collapsed-core
            schema:
              $ref: "#/components/schemas/junos_evpn_topology"
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteEvpnTopology
      tags:
        - Sites EVPN Topologies
  "/api/v1/sites/{site_id}/evpn_topologies/{evpn_topology_id}":
    delete:
      description: Delete the site EVPN Topology
      operationId: deleteSiteEvpnTopology
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteEvpnTopology
      tags:
        - Sites EVPN Topologies
    get:
      description: Get One EVPN Topology Detail
      operationId: getSiteEvpnTolopogy
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteEvpnTolopogy
      tags:
        - Sites EVPN Topologies
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/evpn_topology_id"
    put:
      description: Update the EVPN Topolgy
      operationId: updateSiteEvpnTopology
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  overwrite: false
                  switches:
                    - mac: 5c5b35000003
                      role: collapsed-core
                    - mac: 5c5b35000004
                      role: none
            schema:
              $ref: "#/components/schemas/junos_evpn_topology"
      responses:
        "200":
          $ref: "#/components/responses/EvpnTopology"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteEvpnTopology
      tags:
        - Sites EVPN Topologies
  "/api/v1/sites/{site_id}/guests":
    get:
      description: Get List of Site Guest Authorizations
      operationId: listSiteAllGuestAuthorizations
      parameters:
        - description: UUID of single or multiple (Comma separated) WLAN under Site `site_id` (to filter by WLAN)
          in: query
          name: wlan_id
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/GuestsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAllGuestAuthorizations
      tags:
        - Sites Guests
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/guests/count":
    get:
      description: Count Authorized Guest
      operationId: countSiteGuestAuthorizations
      parameters:
        - example: auth_method
          in: query
          name: distinct
          schema:
            default: auth_method
            enum:
              - auth_method
              - ssid
              - company
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteGuestAuthorizations
      tags:
        - Sites Guests
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/guests/search":
    get:
      description: Search Authorized Guest
      operationId: searchSiteGuestAuthorization
      parameters:
        - example: 00000000-0000-0000-0000-000000000000
          in: query
          name: wlan_id
          schema:
            type: string
        - in: query
          name: auth_method
          schema:
            type: string
        - in: query
          name: ssid
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/GuestsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteGuestAuthorization
      tags:
        - Sites Guests
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/guests/{guest_mac}":
    delete:
      description: Delete Guest Authorization
      operationId: deleteSiteGuestAuthorization
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteGuestAuthorization
      tags:
        - Sites Guests
    get:
      description: Get Guest Authorization
      operationId: getSiteGuestAuthorization
      responses:
        "200":
          $ref: "#/components/responses/Guest"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteGuestAuthorization
      tags:
        - Sites Guests
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/guest_mac"
    put:
      description: "Update Guest Authorization  "
      operationId: updateSiteGuestAuthorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/guest"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Guest"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteGuestAuthorization
      tags:
        - Sites Guests
  "/api/v1/sites/{site_id}/insights/client/{client_mac}/{metric}":
    get:
      description: |-
        Get Client Insight Metrics
        See metrics possibilities at /api/v1/const/insight_metrics
      operationId: getSiteInsightMetricsForClient
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/InsightMetric"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteInsightMetricsForClient
      tags:
        - Sites Insights
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
      - $ref: "#/components/parameters/metric"
  "/api/v1/sites/{site_id}/insights/device/{device_mac}/{metric}":
    get:
      description: |-
        Get AP Insight Metrics
        See metrics possibilities at /api/v1/const/insight_metrics
      operationId: getSiteInsightMetricsForDevice
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/DeviceMetric"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteInsightMetricsForDevice
      tags:
        - Sites Insights
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/metric"
      - $ref: "#/components/parameters/device_mac"
  "/api/v1/sites/{site_id}/insights/rogues":
    get:
      description: Get List of Site Rogue/Neighbor APs
      operationId: listSiteRogueAPs
      parameters:
        - $ref: "#/components/parameters/rogue_type"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/InsightRogue"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteRogueAPs
      tags:
        - Sites Insights
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/insights/rogues/clients":
    get:
      description: Get List of Site Rogue Clients
      operationId: listSiteRogueClients
      parameters:
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/InsightRogueClients"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteRogueClients
      tags:
        - Sites Insights
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/insights/{metric}":
    get:
      description: |-
        Get Site Insight Metrics
        See metrics possibilities at /api/v1/const/insight_metrics
      operationId: getSiteInsightMetrics
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/interval"
      responses:
        "200":
          $ref: "#/components/responses/InsightMetric"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteInsightMetrics
      tags:
        - Sites Insights
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/metric"
  "/api/v1/sites/{site_id}/licenses/usages":
    get:
      description: This shows license usage (i.e. needed) based on the features enabled for the site.
      operationId: getSiteLicenseUsage
      responses:
        "200":
          $ref: "#/components/responses/getLicenceUsage"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteLicenseUsage
      tags:
        - Sites Licenses
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/location/coverage":
    get:
      description: Get Beam Coverage Overview
      operationId: getSiteBeamCoverageOverview
      parameters:
        - description: map_id (filter by map_id)
          example: 00000000-0000-0000-0000-000000000000
          in: query
          name: map_id
          schema:
            type: string
        - in: query
          name: type
          schema:
            default: sdkclient
            enum:
              - sdkclient
              - client
              - asset
            type: string
        - description: where the start time will be calculated (with end time is now)
          in: query
          name: duration
          schema:
            default: 1h
            enum:
              - 1d
              - 5h
              - 1h
              - 30m
            type: string
        - $ref: "#/components/parameters/resolution"
        - description: client_type (as filter. optional)
          in: query
          name: client_type
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    beams_means:
                      - - 1
                        - 3
                        - 3.2
                      - - 6
                        - 10
                        - 6.5
                    end: 1428954000
                    gridsize: 1
                    result_def:
                      - x
                      - y
                      - beams_mean
                      - beacons_mean
                      - max_rssi
                      - avg_rssi
                    results:
                      - - 1
                        - 3
                        - 3.2
                        - 18.5
                        - -68
                        - -70
                      - - 6
                        - 10
                        - 6.5
                        - 30
                        - 1
                        - -72.5
                        - -75
                    start: 1428939600
              schema:
                properties:
                  beams_means:
                    description: list of [x, y, mean]s, x/y are in meters (UI would need to use map.ppm to calulate the pixel location from top-left).
                    items:
                      items:
                        type: number
                      type: array
                    type: array
                  end:
                    type: integer
                  gridsize:
                    description: the size of grid, in meter
                    type: number
                  result_def:
                    description: list of names annotating the fields in results
                    items:
                      type: string
                    type: array
                  results:
                    description: list of results, see result_def.
                    items:
                      items:
                        type: number
                      type: array
                    type: array
                  start:
                    type: integer
                required:
                  - start
                  - end
                  - beams_means
                  - gridsize
                  - result_def
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteBeamCoverageOverview
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/location/ml/current":
    get:
      description: |-
        Get Machine Learning Current Stat
        For each VBLE AP, it has ML model parameters (e.g. Path-loss-estimate, Intercept) as well as completion indicators (Level and PercentageComplete). For the completeness, ML takes N sample to finish its first level and use N*0.25 samples to complete each successive level. When a device is moved, the completeness will be reset as it has to re-learn.
      operationId: getSiteMachineLearningCurrentStat
      parameters:
        - description: map_id (as filter, optional)
          example: 00000000-0000-0000-0000-000000000000
          in: query
          name: map_id
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/Ml"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteMachineLearningCurrentStat
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/location/ml/defaults":
    get:
      description: Get Default PLF for Models
      operationId: getSiteDefaultPlfForModels
      responses:
        "200":
          $ref: "#/components/responses/Ml"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDefaultPlfForModels
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/location/ml/device/{device_id}":
    delete:
      description: Clear ML Overwrite for Device
      operationId: clearSiteMlOverwriteForDevice
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteMlOverwriteForDevice
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
    put:
      description: Overwrite ML For Device
      operationId: overwriteSiteMlForDevice
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  iOS:
                    int: 6
                    ple: -3
                  iPod:
                    int: -10
                    ple: -5
            schema:
              $ref: "#/components/schemas/Model_ml"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ml"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: overwriteSiteMlForDevice
      tags:
        - Sites Location
  "/api/v1/sites/{site_id}/location/ml/map/{map_id}":
    delete:
      description: Clear ML Overwrite for Map
      operationId: clearSiteMlOverwriteForMap
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteMlOverwriteForMap
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    put:
      description: Overwrite ML For Map
      operationId: overwriteSiteMlForMap
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  iOS:
                    int: 6
                    ple: -3
                  iPod:
                    int: -10
                    ple: -5
            schema:
              $ref: "#/components/schemas/Model_ml"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Ml"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: overwriteSiteMlForMap
      tags:
        - Sites Location
  "/api/v1/sites/{site_id}/location/ml/reset/map/{map_id}":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: Reset ML Stats by Map
      operationId: resetSiteMlStatsByMap
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: resetSiteMlStatsByMap
      tags:
        - Sites Location
  "/api/v1/sites/{site_id}/location/ml/updates":
    get:
      description: Get Machine Learning Events
      operationId: getSiteMachineLearningEvents
      parameters:
        - description: device_id (as filter, optional)
          example: 00000000-0000-0000-0000-000000000000
          in: query
          name: device_id
          schema:
            type: string
        - description: map_id (as filter, optional)
          in: query
          name: map_ip
          schema:
            type: string
        - description: client_type (as filter, optional)
          in: query
          name: client_type
          schema:
            type: string
        - description: instead of start, you can use 1d, 30m, 5h, where the start will be calculated
          in: query
          name: duration
          schema:
            type: string
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - in: query
          name: interval
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/MlEvents"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteMachineLearningEvents
      tags:
        - Sites Location
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/maps":
    get:
      description: Get List of Site Maps
      operationId: listSiteMaps
      responses:
        "200":
          $ref: "#/components/responses/MapsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteMaps
      tags:
        - Sites Maps
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site Map
      operationId: createSiteMap
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  flags: {}
                  height: 0
                  height_m: 0
                  latlng_br:
                    lat: string
                    lng: string
                  latlng_tl:
                    lat: string
                    lng: string
                  locked: true
                  name: string
                  occupancy_limit: 0
                  orientation: 0
                  origin_x: 0
                  origin_y: 0
                  ppm: 0
                  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
            schema:
              $ref: "#/components/schemas/map"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Map"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteMap
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/import":
    parameters:
      - $ref: "#/components/parameters/site_id"
    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 matching inventory to specific site, place ap if name or mac matches

        # CSV File Format
        ```csv
        Vendor AP name,Mist AP Mac
        US Office AP-2 - 5c:5b:35:00:00:02,5c5b35000002
        ``` 
      operationId: importSiteMaps
      requestBody:
        content:
          multipart/form-data:
            examples:
              example-1:
                value:
                  auto_deviceprofile_assignment: true
                  csv: string
                  file: string
                  json:
                    import_all_floorplans: false
                    import_height: true
                    import_orientation: true
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    vendor_name: ekahau
            schema:
              properties:
                auto_deviceprofile_assignment:
                  description: boolean, whether to auto assign device to deviceprofile by name
                  type: boolean
                csv:
                  description: csv file for ap name mapping, optional
                  format: binary
                  type: string
                file:
                  format: binary
                  type: string
                json:
                  properties:
                    import_all_floorplans:
                      default: false
                      type: boolean
                    import_height:
                      default: true
                      type: boolean
                    import_orientation:
                      default: true
                      type: boolean
                    site_id:
                      format: uuid
                      type: string
                    vendor_name:
                      enum:
                        - ekahau
                        - ibwave
                      type: string
                  required:
                    - vendor_name
                    - site_id
                  type: object
              type: object
        description: ""
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    aps:
                      - action: ignored
                        floorplan_id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        height: 3
                        mac: 5c5b35000001
                        orientation: 45
                      - action: placed
                        height: 3
                        mac: 5c5b35000001
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        orientation: 45
                    floorplans:
                      - action: ignored
                        id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        name: map1
                        reason: no aps placed
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    summary:
                      num_ap_assigned: 1
                      num_inv_assigned: 1
                      num_map_assigned: 1
              schema:
                description: ""
                properties:
                  aps:
                    items:
                      properties:
                        action:
                          enum:
                            - placed
                            - assigned-placed
                            - named-placed
                            - assigned-named-placed
                            - ignored
                          minLength: 1
                          type: string
                        floorplan_id:
                          minLength: 1
                          type: string
                        height:
                          type: number
                        mac:
                          minLength: 1
                          type: string
                        map_id:
                          minLength: 1
                          type: string
                        orientation:
                          type: number
                        reason:
                          minLength: 1
                          type: string
                      required:
                        - mac
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  floorplans:
                    items:
                      properties:
                        action:
                          enum:
                            - imported
                            - ignored
                          minLength: 1
                          type: string
                        id:
                          minLength: 1
                          type: string
                        map_id:
                          minLength: 1
                          type: string
                        name:
                          minLength: 1
                          type: string
                        reason:
                          minLength: 1
                          type: string
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  site_id:
                    minLength: 1
                    type: string
                  summary:
                    properties:
                      num_ap_assigned:
                        type: number
                      num_inv_assigned:
                        type: number
                      num_map_assigned:
                        type: number
                    required:
                      - num_ap_assigned
                    type: object
                required:
                  - site_id
                  - aps
                type: object
                x-examples:
                  example-1:
                    aps:
                      - action: placed
                        floorplan_id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        height: 3
                        mac: 5c5b35000001
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        orientation: 45
                        reason: not found on site
                    floorplans:
                      - action: ignored
                        id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
                        map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                        name: map1
                        reason: no aps placed
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    summary:
                      num_ap_assigned: 1
                      num_inv_assigned: 1
                      num_map_assigned: 1
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importSiteMaps
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/{map_id}":
    delete:
      description: Delete Site Map
      operationId: deleteSiteMap
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteMap
      tags:
        - Sites Maps
    get:
      description: Get Site Map Details
      operationId: getSiteMap
      responses:
        "200":
          $ref: "#/components/responses/Map"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteMap
      tags:
        - Sites Maps
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    put:
      description: Update Site Map
      operationId: updateSiteMap
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  flags: {}
                  height: 0
                  height_m: 0
                  latlng_br:
                    lat: string
                    lng: string
                  latlng_tl:
                    lat: string
                    lng: string
                  locked: true
                  name: string
                  occupancy_limit: 0
                  orientation: 0
                  origin_x: 0
                  origin_y: 0
                  ppm: 0
                  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
            schema:
              $ref: "#/components/schemas/map"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Map"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteMap
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/{map_id}/auto_orient":
    delete:
      description: This API is called to force stop auto placement for a given map
      operationId: deleteSiteApAutoOrientation
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          description: Autoplacement was not triggered
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteApAutoOrientation
      tags:
        - Sites Maps Auto-orientation
    parameters:
      - $ref: "#/components/parameters/map_id"
      - $ref: "#/components/parameters/site_id"
    post:
      description: This API is used to trigger a map for Auto orientation
      operationId: startSiteApAutoOrientation
      responses:
        "200":
          content:
            application/json:
              examples:
                Enqueued:
                  value:
                    state: Not Started
                    time_queued: 1675414259
                Example 1:
                  value:
                    state: Oriented
                    time_queued: 1675414259
                Not Started:
                  value:
                    state: Not Started
                    time_queued: -1
              schema:
                properties:
                  state:
                    description: The state of auto orient for a given map derived from an Enum
                    enum:
                      - Not Started
                      - Enqueued
                      - Oriented
                    type: string
                  time_queued:
                    description: Time when auto orient process was last queued for this map
                    type: number
                type: object
                x-examples:
                  Example 1:
                    state: Not Started
                    time_queued: -1
          description: Map queued for auto orientation
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: startSiteApAutoOrientation
      tags:
        - Sites Maps Auto-orientation
  "/api/v1/sites/{site_id}/maps/{map_id}/auto_placement":
    delete:
      description: This API is called to force stop auto placement for a given map
      operationId: deleteSiteApAutoplacement
      responses:
        "200":
          description: Autoplacement Process has stopped for this map
        "400":
          description: Autoplacement was not triggered
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteApAutoplacement
      tags:
        - Sites Maps Auto-placement
    get:
      description: This API is called to view the current status of auto placement for a given map.
      operationId: getSiteApAutoPlacement
      responses:
        "200":
          content:
            application/json:
              examples:
                Done:
                  value:
                    end_time: 1678900362
                    start_time: 1678900062
                    status: done
                Error:
                  value:
                    end_time: 1678900362
                    start_time: 1678900062
                    status: error
                In Progress:
                  value:
                    est_time_left: 300
                    start_time: 1678900062
                    status: inprogress
                Pending:
                  value:
                    status: pending
              schema:
                properties:
                  end_time:
                    description: time when autoplacement completed or was manually stopped
                    type: number
                  estimated_time_left:
                    description: estimate of the time to completion
                    type: number
                  start_time:
                    description: time when autoplacement process was last queued for this map
                    type: number
                  status:
                    description: the status of autoplacement for a given map
                    enum:
                      - pending
                      - inprogress
                      - done
                      - error
                    type: string
                type: object
                x-examples:
                  Example 1:
                    estimated_time_left: 0
                    state: Not Started
                    time_queued: -1
                    time_stopped: -1
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteApAutoplacement
      tags:
        - Sites Maps Auto-placement
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: |-
        This API is called to trigger a map for auto placement. For auto placement feature to work, RTT-FTM data need to be collected from the APs on the map. This scan is disruptive and therefore the user must be notified of service disrution during the functioning of auto placement Repeated POST to this endpoint while a map is still running will be rejected.

        List of devices to provide suggestions for is an optional parameter that can be given to this API. This will provide autoplacement suggestions only for the devices specified. If no list of devices is provided, all APs asociated with that map are considered by default
      operationId: runSiteApAutoplacement
      requestBody:
        content:
          application/json:
            schema:
              properties:
                device_ids:
                  description: list of device macs
                  items:
                    type: string
                  type: array
                force_collection:
                  default: false
                  description: |-
                    * If `force_collection`==`false`: the API Iattempts to start localization with existing data. 
                    * If `force_collection`==`true`: maintenance the API attempts to start orchestration.
                  type: boolean
              type: object
        description: ""
      responses:
        "200":
          description: Autoplacement Process has begun for this map
        "400":
          description: |-
            * Map has less than 3 APs associated with it to perform auto placement 
            * Insufficient anchors for auto placement. 3 required
            * Auto AP Placement is already in progress for this Map
            * Autoplacement data does not exist or has gone stale
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: runSiteApAutoplacement
      tags:
        - Sites Maps Auto-placement
  "/api/v1/sites/{site_id}/maps/{map_id}/clear_auto_orient":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: This API is used to destroy the autoorientations of a map or subset of APs on a map.
      operationId: clearSiteApAutoOrient
      requestBody:
        content:
          application/json:
            schema:
              properties:
                device_ids:
                  description: list of device macs
                  items:
                    type: string
                  type: array
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteApAutoOrient
      tags:
        - Sites Maps Auto-orientation
  "/api/v1/sites/{site_id}/maps/{map_id}/clear_autoplacement":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: This API is used to destroy the cached autoplacement locations of a map or subset of APs on a map.
      operationId: clearSiteApAutoplacement
      requestBody:
        content:
          application/json:
            schema:
              properties:
                device_ids:
                  description: list of device macs
                  items:
                    type: string
                  type: array
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: clearSiteApAutoplacement
      tags:
        - Sites Maps Auto-placement
  "/api/v1/sites/{site_id}/maps/{map_id}/image":
    delete:
      description: Delete Site Map Image
      operationId: deleteSiteMapImage
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteMapImage
      tags:
        - Sites Maps
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: Add image map is a multipart POST which has an file (Image) and an optional json parameter
      operationId: addSiteMapImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/image_upload"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: addSiteMapImage
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/{map_id}/replace":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: |-
        Replace Map Image


        This works like an PUT where the image will be replaced. If transform is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)
      operationId: replaceSiteMapImage
      requestBody:
        content:
          multipart/form-data:
            examples:
              example-1:
                value:
                  file: string
                  json:
                    transform:
                      rotate: 0
                      scale: 0
                      x: 0
                      y: 0
            schema:
              description: ""
              properties:
                file:
                  format: binary
                  minLength: 1
                  type: string
                json:
                  properties:
                    transform:
                      description: If `transform` is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)
                      properties:
                        rotate:
                          type: number
                        scale:
                          type: number
                        x:
                          type: number
                        y:
                          type: number
                      type: object
                  type: object
              required:
                - file
              type: object
              x-examples:
                example-1:
                  file: rez
                  json:
                    transform:
                      rotate: 0
                      scale: 1
                      x: 200
                      y: 150
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: replaceSiteMapImage
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/{map_id}/revert_auto_orient":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/maps/{map_id}/revert_autoplacement":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/maps/{map_id}/set_map":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: |-
        This API can be used to assign a list of AP Macs associated with site_id to the specified map_id. Note that map_id must be associated with corresponding site_id. This API obeys the following rules 
        1. if AP is unassigned to any Map, it gets associated with map_id 
        2. Any moved APs are returned in the response 
        3. If the AP is considered a locked AP, no action will be taken
      operationId: bulkAssignSiteApsToMap
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  device_ids:
                    - 00000000-0000-0000-1000-5c5b35000001
                    - 00000000-0000-0000-1000-5c5b35584a6f
            schema:
              properties:
                device_ids:
                  items:
                    type: string
                  type: array
              type: object
              x-examples:
                Example 1:
                  device_ids:
                    - 00000000-0000-0000-1000-5c5b35000001
                    - 00000000-0000-0000-1000-5c5b35584a6f
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    locked:
                      - 00000000-0000-0000-1000-5c5b35000001
                    moved:
                      - 00000000-0000-0000-1000-5c5b35584a6f
              schema:
                properties:
                  locked:
                    items:
                      type: string
                    type: array
                  moved:
                    items:
                      type: string
                    type: array
                type: object
                x-examples:
                  Example 1:
                    locked:
                      - 00000000-0000-0000-1000-5c5b35000001
                    moved:
                      - 00000000-0000-0000-1000-5c5b35584a6f
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: bulkAssignSiteApsToMap
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/maps/{map_id}/wayfinding/import":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
    post:
      description: This imports the vendor map meta data into the Map JSON. This is required by the SDK and App in order to access/render the vendor Map properly.
      operationId: importSiteWayfindings
      requestBody:
        content:
          application/json:
            examples:
              Jimbstream:
                value:
                  client_id: 199d6770-0f6f-407a-9bd5-fc33c7840194
                  client_secret: /9Nog3yDzcYj0bY91XJZQLCt+m9DXaIVhx+Ghk3ddd
                  customer_id: 123
                  endpoint_url: https://api.jibestream.com
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mmpp: 223
                  ppm: 4
                  vendor_name: jibestream
                  venue_id: 123
              Micello:
                value:
                  account_key: adasdf
                  default_level_id: 5
                  map_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  vendor_name: micello
            schema:
              oneOf:
                - properties:
                    client_id:
                      description: the client id
                      format: uuid
                      type: string
                    client_secret:
                      description: the client secret
                      type: string
                    customer_id:
                      description: the jibestream customer record id
                      format: uuid
                      type: integer
                    endpoint_url:
                      description: the map contents endpoint host
                      type: string
                    map_id:
                      description: the jibestream map id
                      format: uuid
                      type: string
                    mmpp:
                      description: millimeter per pixel
                      type: integer
                    ppm:
                      description: pixel per meter, same as the map JSON value.
                      type: number
                    vendor_name:
                      default: jibestream
                      description: the vendor ‘jibestream’
                      enum:
                        - jibestream
                      type: string
                    venue_id:
                      description: the venue or organization id
                      format: uuid
                      type: integer
                  required:
                    - vendor_name
                    - venue_id
                    - map_id
                    - ppm
                    - client_id
                    - client_secret
                    - customer_id
                    - endpoint_url
                    - mmpp
                - properties:
                    account_key:
                      description: the account key that has access to the map
                      type: string
                    default_level_id:
                      description: micello floor/level id
                      type: integer
                    map_id:
                      description: micello map id
                      format: uuid
                      type: string
                    vendor_name:
                      default: micello
                      description: the vendor ‘micello’
                      enum:
                        - micello
                      type: string
                  required:
                    - vendor_name
                    - account_key
                    - map_id
                    - default_level_id
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importSiteWayfindings
      tags:
        - Sites Maps
  "/api/v1/sites/{site_id}/mxedges":
    get:
      description: Get List of Site Mist Edges
      operationId: listSiteMxEdges
      responses:
        "200":
          $ref: "#/components/responses/MxedgesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteMxEdges
      tags:
        - Sites MxEdges
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site Mist Edge
      operationId: createSiteMxEdge
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/mxedge"
      responses:
        "200":
          $ref: "#/components/responses/Mxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteMxEdge
      tags:
        - Sites MxEdges
  "/api/v1/sites/{site_id}/mxedges/{mxedge_id}":
    delete:
      description: Delete Site Mist Edge
      operationId: deleteSiteMxEdge
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteMxEdge
      tags:
        - Sites MxEdges
    get:
      description: get Site Mist Edge
      operationId: getSiteMxEdge
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteMxEdge
      tags:
        - Sites MxEdges
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/mxedge_id"
    put:
      description: Update Site Mist Edge settings
      operationId: updateSiteMxEdge
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/mxedge"
      responses:
        "200":
          $ref: "#/components/responses/Mxedge"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteMxEdge
      tags:
        - Sites MxEdges
  "/api/v1/sites/{site_id}/mxedges/{mxedge_id}/support":
    parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: string
      - in: path
        name: mxedge_id
        required: true
        schema:
          type: string
    post:
      description: Support / Upload Mist Edge support files
      operationId: uploadSiteMxEdgeSupportFiles
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 1574114372
                    for_site: true
                    id: b025de9b-7bb6-43bd-8a71-bf3cu840c9ad
                    magic: S2ZD-srTcoOp9GGttZpq1ISQEq4iPY3EhWpAKB9pb9JdWjeP12bjIbFYsDy5jP3a
                    model: ME-100
                    modified_time: 1574117211
                    mxagent_registered: false
                    mxcluster_id: c88aa7a2-ac27-7d87-b633-1ac3a7837929
                    name: staging_edge
                    org_id: 5a5ed2f4-632f-41f3-b8ed-d3afa4b27f96
                    services:
                      - tunterm
                    site_id: c88aa7a2-ac27-7d87-b633-1ac3a7837928
                    status: disconnected
                    tunterm_ip_config:
                      gateway: ""
                      ip: ""
                      netmask: ""
                    tunterm_port_config:
                      downstream_ports:
                        - "0"
                      separate_upstream_downstream: false
                      upstream_ports:
                        - "0"
                    tunterm_registered: false
              schema:
                properties:
                  created_time:
                    type: integer
                  for_site:
                    type: boolean
                  id:
                    type: string
                  magic:
                    type: string
                  model:
                    type: string
                  modified_time:
                    type: integer
                  mxagent_registered:
                    type: boolean
                  mxcluster_id:
                    format: uuid
                    type: string
                  name:
                    type: string
                  org_id:
                    type: string
                  services:
                    items:
                      type: string
                    type: array
                  site_id:
                    type: string
                  status:
                    type: string
                  tunterm_ip_config:
                    properties:
                      gateway:
                        type: string
                      ip:
                        type: string
                      netmask:
                        type: string
                    type: object
                  tunterm_port_config:
                    properties:
                      downstream_ports:
                        items:
                          type: string
                        type: array
                      separate_upstream_downstream:
                        type: boolean
                      upstream_ports:
                        items:
                          type: string
                        type: array
                    type: object
                  tunterm_registered:
                    type: boolean
                type: object
                x-examples:
                  example-1:
                    created_time: 1574114372
                    for_site: true
                    id: b025de9b-7bb6-43bd-8a71-bf3cu840c9ad
                    magic: S2ZD-srTcoOp9GGttZpq1ISQEq4iPY3EhWpAKB9pb9JdWjeP12bjIbFYsDy5jP3a
                    model: ME-100
                    modified_time: 1574117211
                    mxagent_registered: false
                    mxcluster_id: null
                    name: staging_edge
                    org_id: 5a5ed2f4-632f-41f3-b8ed-d3afa4b27f96
                    services:
                      - tunterm
                    site_id: c88aa7a2-ac27-7d87-b633-1ac3a7837928
                    status: disconnected
                    tunterm_ip_config:
                      gateway: ""
                      ip: ""
                      netmask: ""
                    tunterm_port_config:
                      downstream_ports:
                        - "0"
                      separate_upstream_downstream: false
                      upstream_ports:
                        - "0"
                    tunterm_registered: false
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uploadSiteMxEdgeSupportFiles
      tags:
        - Sites MxEdges
  "/api/v1/sites/{site_id}/mxtunnels/{mxtunnel_id}/preempt_aps":
    parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: string
      - in: path
        name: mxtunnel_id
        required: true
        schema:
          type: string
    post:
      description: To preempt AP’s which are not connected to preferred peer to the preferred peer
      operationId: preemptSitesMxTunnel
      responses:
        "200":
          content:
            application/json:
              schema:
                description: ""
                properties:
                  preempted_aps:
                    items:
                      type: string
                    type: array
                required:
                  - preempted_aps
                type: object
                x-examples:
                  example-1:
                    preempted_aps:
                      - 5c5b35000001
                      - 5c5b35000002
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: preemptSitesMxTunnel
      tags:
        - Sites MxTunnels
  "/api/v1/sites/{site_id}/otherdevices":
    get:
      description: Get List of Site other devices (3rd party devices)
      operationId: listSiteOtherDevices
      parameters:
        - in: query
          name: vendor
          schema:
            type: string
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: serial
          schema:
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/DeviceOtherArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteOtherDevices
      tags:
        - Sites Devices Others
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/pcaps":
    get:
      description: Get List of Site Packet Captures
      operationId: listSitePacketCaptures
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - description: optional client mac filter
          in: query
          name: client_mac
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/PcapsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSitePacketCaptures
      tags:
        - Sites Pcaps
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/pcaps/capture":
    delete:
      description: Stop current capture
      operationId: stopSitePacketCapture
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: stopSitePacketCapture
      tags:
        - Sites Pcaps
    get:
      description: Get Capturing status
      operationId: getSiteCapturingStatus
      responses:
        "200":
          $ref: "#/components/responses/PcapStatus"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCapturingStatus
      tags:
        - Sites Pcaps
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Initiate a Packet Capture

        The output will be available through websocket. As there can be multiple command issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.

        #### Subscribe to Device Command outputs
        `WS /api-ws/v1/stream`

        ```json
        {
            subscribe: "/sites/{site_id}/pcaps"
        }
        ```
        #### Response (Wireless/RadioTap)
        ```json
        {
            "event": "data"
            "channel": "/sites/:site_id/pcaps"
            "data": {
                 "capture_id": "6b1be4fb-b239-44d9-9d3b-cb1ff3af1721",
             "lost_messages": 0
                 "pcap_dict": {
                     "channel_frequency": 2412,
                     "channel": "1",
                     "datarate": "1.0 Mbps",
                     "rssi": -75, 
                     "dst": "78:bd:bc:ca:0b:0a",
                     "src": "18:b8:1f:4c:91:c0",
                     "bssid": "18:b8:1f:4c:91:c0",
                     "frame_type": "Management", 
                     "frame_subtype": "Probe Response", 
                 "proto": "802.11", 
                     "ap_mac": "d4:20:b0:81:99:2e", 
                     "direction": "tx", 
                     "timestamp": 1652246543, 
                     "length": 416.0,
                     "interface": "radiotap",
                     "info": "1652246544.467733 1683216786us tsft 1.0 Mb/s 2412 MHz 11g -75dBm signal -82dBm noise antenna 0 Probe Response (ATTKmsWiVS) [1.0* 2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0 Mbit] CH: 2, PRIVACY\\n",
                 }, 
                "pcap_raw": "1MOyoQIABAAAAAAAAAAAAP//AAABAAAAEEh7Yh5VBwCgAQAAoAEAAAAAKwBvCADAAQAAAIw7reCS2VNkAAAAABACbAmABLWuAAEAEBgAAwACAABQADoBeL28ygsKGLgfTJHAGLgfTJHAcIZ2WDlBJQAAAGQAERUACkFUVEttc1dpVlMBCIKEi5YkMEhsAwECBwZVUyABCx4gAQAjAhkAKgEEMgQMEhhgMBQBAAAPrAQBAAAPrAQBAAAPrAIMAAsFAQAbAABGBTIIAQAALRqtCR////8AAAAAAAAAAAAAAAAAAAAAAAAAAD0WAggVAAAAAAAAAAAAAAAAAAAAAAAAAH8IBAAIAAAAAEDdkwBQ8gQQSgABEBBEAAECEDsAAQMQRwAQn2481frn3KT+uGod2ERx+RAhAAtBcnJpcywgSW5jLhAjAApCR1cyMTAtNzAwECQACkJHVzIxMC03MDAQQgAKQkdXMjEwLTcwMBBUAAgABgBQ8gQAARARAA5BcnJpcyBXaXJlbGVzcxAIAAIgCBA8AAEBEEkABgA3KgABIN0JABAYAgEQHAAA3RgAUPICAQGEAAOkAAAnpAAAQkNeAGIyLwAzjakr"
        }
        ```

        #### vResponse (Wired)
        ```json
        {
            "event": "data"
            "channel": "/sites/67970e46-4e12-11e6-9188-0242ac110007/pcaps"
            "data": {
                "capture_id": "f039b1b4-a23e-48b2-906a-0da40524de73", 
                "pcap_dict": {
                     "dst_mac": "68:ec:c5:09:2e:87",
                     "src_mac": "8c:3b:ad:e0:47:40", 
                     "vlan": 1, 
                     "src_ip": "34.224.147.117", 
                     "dst_ip": "192.168.1.55",
                     "dst_port": 51635, 
                     "src_port": 443,
                     "proto": "TCP", 
                     "ap_mac": "d4:20:b0:81:99:2e",
                     "direction": "tx", 
                     "timestamp": 1652247615, 
                     "length": 159.0, 
                     "interface": "wired",
                     "info": "1652247616.007409 IP ec2-34-224-147-117.compute-1.amazonaws.com.https > ip-192-168-1-55.ec2.internal.51635: Flags [P.], seq 2192123968:2192124057, ack 4035166782, win 12, options [nop,nop,TS val 597467050 ecr 740580660], length 89\\n",
                     }, 
                "pcap_raw": "1MOyoQIABAAAAAAAAAAAAP//AAABAAAAQEx7YhMzAACfAAAAnwAAAGjsxQkuh4w7reBHQIEAAAEIAEUAAI1bLEAAKAZ/CiLgk3XAqAE3AbvJs4KpKEDwg8I+gBgADFf9AAABAQgKI5yfqiwkXTQXAwMAVKY5JopoKQrVEn0/3ld4YntctGEH/rTZuwtCvzSncFw71QJveJi9uxHs57KC8w9Apph3YvXJrmWg7M37+o+YV0KH/xmr626s5Bkhb3QhKOu+NoNEmA=="

            }
        }
        ```

        #### Stop Response (Wired/Wireless)
        ```json
        {
            "event": "data"
            "channel": "/sites/67970e46-4e12-11e6-9188-0242ac110007/pcaps"
            "data": {
              "capture_id": "a2f7374d-6a70-41fd-8a3f-71e42573baaf", 
              "lost_messages": 0,
              "pcap_dict": null
            }
        }
        ```
      operationId: startSitePacketCapture
      requestBody:
        content:
          application/json:
            examples:
              AP New Wireless Client Associations Packet Capture:
                value:
                  client_mac: 60a10a773412
                  duration: 600
                  includes_mcast: false
                  max_pkt_len: 128
                  num_packets: 100
                  type: new_assoc
              AP Radiotap Packet Capture:
                value:
                  duration: 600
                  max_pkt_len: 68
                  num_packets: 100
                  type: wlan
              AP Radiotap Packet Capture and Wired Packet Capture:
                value:
                  ap_mac: string
                  client_mac: string
                  duration: 600
                  includes_mcast: true
                  max_pkt_len: 128
                  num_packets: 1024
                  ssid: string
                  type: client
              AP Scan radio Packet Capture:
                value:
                  ap_mac: string
                  client_mac: string
                  duration: 600
                  includes_mcast: true
                  max_pkt_len: 128
                  num_packets: 1024
                  ssid: string
                  type: client
              AP Wired Packet Capture:
                value:
                  duration: 600
                  max_pkt_len: 68
                  num_packets: 100
                  tcpdump_expression: tcp port 80
                  type: wired
              AP Wireless Packet Capture:
                value:
                  ap_mac: null
                  band: "24"
                  duration: 600
                  max_pkt_len: 128
                  num_packets: 100
                  type: wireless
              AP Wlan Packet Capture:
                value:
                  duration: 600
                  max_pkt_len: 68
                  num_packets: 100
                  type: wlan
              Client Packet Capture:
                value:
                  client_mac: 60a10a773412
                  duration: 300
                  includes_mcast: false
                  max_pkt_len: 128
                  num_packets: 1000
                  type: client
              SSR Packet Capture:
                value:
                  duration: 600
                  format: stream
                  gateways:
                    "001122334455":
                      ports:
                        ge-0/0/0:
                          tcpdump_expression: tcp
                        ge-0/0/1:
                          tcpdump_expression: port 443
                        ge-1/0/0:
                          tcpdump_expression: tcp
                        ge-1/0/1:
                          tcpdump_expression: port 443
                    "001122334466":
                      ports:
                        ge-0/0/0:
                          tcpdump_expression: udp
                        ge-0/0/1:
                          tcpdump_expression: port 32768
                  max_pkt_len: 1500
                  num_packets: 100
                  type: gateway
              Switch (Junos) Packet Capture:
                value:
                  duration: 600
                  format: stream
                  max_pkt_len: 1500
                  num_packets: 100
                  switches:
                    "001122334455":
                      ports:
                        ge-0/0/0:
                          tcpdump_expression: udp
                        ge-0/0/1: {}
                        ge-1/0/0: null
                        ge-1/0/1: {}
                    "001122334466":
                      ports:
                        ge-0/0/0: {}
                        ge-0/0/1: {}
                  tcpdump_expression: port 443
                  type: switch
            schema:
              $ref: "#/components/schemas/capture"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/PcapStart"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: startSitePacketCapture
      tags:
        - Sites Pcaps
  "/api/v1/sites/{site_id}/pcaps/{pcap_id}":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/pcap_id"
    put:
      description: Update or add notes to a completed packet capture
      operationId: updateSitePacketCapture
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  notes: wired pcap test
            schema:
              properties:
                notes:
                  example: wired pcap test
                  type: string
              type: object
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSitePacketCapture
      tags:
        - Sites Pcaps
  "/api/v1/sites/{site_id}/psks":
    get:
      description: Get List of Site PSKs
      operationId: listSitePsks
      parameters:
        - in: query
          name: ssid
          schema:
            type: string
        - in: query
          name: role
          schema:
            type: string
        - $ref: "#/components/parameters/name"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSitePsks
      tags:
        - Sites Psks
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site PSK
      operationId: createSitePsk
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  mac: string
                  name: string
                  passphrase: stringst
                  ssid: string
                  usage: multi
                  vlan_id: 1
            schema:
              $ref: "#/components/schemas/psk"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSitePsk
      tags:
        - Sites Psks
    put:
      description: Update multi PSKs
      operationId: updateSitePsks
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - id: 2f64a022-9422-4fa3-92aa-ff6559a9f7f9
                    name: common123
                    passphrase: foryoureyesonly2
                    ssid: warehouse
                  - id: 110c59ae-d7b2-40f9-9bf2-82367370e55a
                    name: common12
                    passphrase: foryoureyesonly1
                    role: teacher
                    ssid: warehouse
                    usage: single
            schema:
              items:
                $ref: "#/components/schemas/psk"
              type: array
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSitePsks
      tags:
        - Sites Psks
  "/api/v1/sites/{site_id}/psks/import":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        Import PSK from CSV file or JSON

        ## CSV File Format
        ```csv
        PSK Import CSV File Format:
        name,ssid,passphrase,usage,vlan_id,mac
        Common,warehouse,foryoureyesonly,single,35,a31425f31278
        Justin,reception,visible,multi,1002
        ```
      operationId: importSitePsks
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  - created_time: 0
                    expire_time: 1614990263
                    id: 419f6eca-6276-4993-cfeb-53cbbbba6f00
                    mac: string
                    max_usage: 0
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    passphrase: stringst
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    ssid: string
                    usage: multi
                    vlan_id: 0
            schema:
              items:
                $ref: "#/components/schemas/psk"
              type: array
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              type: object
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/PsksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: importSitePsks
      tags:
        - Sites Psks
  "/api/v1/sites/{site_id}/psks/{psk_id}":
    delete:
      description: Delete Site PSK
      operationId: deleteSitePsk
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSitePsk
      tags:
        - Sites Psks
    get:
      description: Get Site PSK Details
      operationId: getSitePsk
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSitePsk
      tags:
        - Sites Psks
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/psk_id"
    put:
      description: Update Site PSK
      operationId: updateSitePsk
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  mac: string
                  name: string
                  passphrase: stringst
                  ssid: string
                  usage: multi
                  vlan_id: 1
            schema:
              $ref: "#/components/schemas/psk"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Psk"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSitePsk
      tags:
        - Sites Psks
  "/api/v1/sites/{site_id}/rfdiags":
    get:
      description: List RF Glass Recording
      operationId: getSiteSiteRfdiagRecording
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/RfdiagsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSiteRfdiagRecording
      tags:
        - Sites Rfdiags
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Start RF Glass Recording
      operationId: startSiteRecording
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/rfdiag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Rfdiag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: startSiteRecording
      tags:
        - Sites Rfdiags
  "/api/v1/sites/{site_id}/rfdiags/{rfdiag_id}":
    delete:
      description: Delete Recording
      operationId: deleteSiteRfdiagRecording
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteRfdiagRecording
      tags:
        - Sites Rfdiags
    get:
      description: Get RF Diage Recording Details
      operationId: getSiteRfdiagRecording
      responses:
        "200":
          $ref: "#/components/responses/Rfdiag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteRfdiagRecording
      tags:
        - Sites Rfdiags
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rfdiag_id"
    put:
      description: Update Recording
      operationId: updateSiteRfdiagRecording
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/rfdiag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Rfdiag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteRfdiagRecording
      tags:
        - Sites Rfdiags
  "/api/v1/sites/{site_id}/rfdiags/{rfdiag_id}/download":
    get:
      description: |-
        Download Recording
        Download raw_events blob
      operationId: downloadSiteRfdiagRecording
      responses:
        "200":
          $ref: "#/components/responses/File"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: downloadSiteRfdiagRecording
      tags:
        - Sites Rfdiags
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rfdiag_id"
  "/api/v1/sites/{site_id}/rfdiags/{rfdiag_id}/stop":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rfdiag_id"
    post:
      description: If the recording session is active for the given rfdiag_id, it will finish the recording. duration and end_time will be updated to reflect the correct values.
      operationId: stopSiteRfdiagRecording
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: stopSiteRfdiagRecording
      tags:
        - Sites Rfdiags
  "/api/v1/sites/{site_id}/rogues/events/count":
    get:
      description: Count Rogue Events
      operationId: countSiteRogueEvents
      parameters:
        - in: query
          name: distinct
          schema:
            default: bssid
            enum:
              - bssid
              - ssid
              - ap
              - type
            type: string
        - $ref: "#/components/parameters/rogue_type"
        - description: ssid of the network detected as threat
          in: query
          name: ssid
          schema:
            type: string
        - description: bssid of the network detected as threat
          in: query
          name: bssid
          schema:
            type: string
        - description: mac of the device that had strongest signal strength for ssid/bssid pair
          in: query
          name: ap_mac
          schema:
            type: string
        - description: channel over which ap_mac heard ssid/bssid pair
          in: query
          name: channel
          schema:
            type: string
        - description: "whether the reporting AP see a wireless client (on LAN) connecting to it  "
          in: query
          name: seen_on_lan
          schema:
            type: boolean
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteRogueEvents
      tags:
        - Sites Rogues
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/rogues/events/search":
    get:
      description: Search Rogue Events
      operationId: searchSiteRogueEvents
      parameters:
        - $ref: "#/components/parameters/rogue_type"
        - description: ssid of the network detected as threat
          in: query
          name: ssid
          schema:
            type: string
        - description: bssid of the network detected as threat
          in: query
          name: bssid
          schema:
            type: string
        - description: mac of the device that had strongest signal strength for ssid/bssid pair
          in: query
          name: ap_mac
          schema:
            type: string
        - description: channel over which ap_mac heard ssid/bssid pair
          in: query
          name: channel
          schema:
            type: integer
        - description: "whether the reporting AP see a wireless client (on LAN) connecting to it  "
          in: query
          name: seen_on_lan
          schema:
            type: boolean
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/RogueEventsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteRogueEvents
      tags:
        - Sites Rogues
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/rogues/{rogue_bssid}":
    get:
      description: Get Rogue AP Details
      operationId: getSiteRogueAP
      parameters: []
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    manufacture: Intel Corporate
                    seen_as_client: true
              schema:
                properties:
                  manufacture:
                    type: string
                  seen_as_client:
                    type: boolean
                required:
                  - seen_as_client
                  - manufacture
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteRogueAP
      tags:
        - Sites Rogues
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rogue_bssid"
  "/api/v1/sites/{site_id}/rogues/{rogue_bssid}/deauth_clients":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rogue_bssid"
    post:
      description: Send Deauth frame to clients connected to a Rogue AP
      operationId: deauthSiteClientsConnectedToARogue
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deauthSiteClientsConnectedToARogue
      tags:
        - Sites Rogues
  "/api/v1/sites/{site_id}/rrm/current":
    get:
      description: Get Current Channel Planning
      operationId: getSiteCurrentChannelPlanning
      responses:
        "200":
          $ref: "#/components/responses/Rrm"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCurrentChannelPlanning
      tags:
        - Sites RRM
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/rrm/current/devices/{device_id}/band/{band}":
    get:
      description: Get Current RRM Considerations for an AP on a Specific Band
      operationId: getSiteCurrentRrmConsiderationsForAnApOnASpecificBand
      responses:
        "200":
          $ref: "#/components/responses/RrmConsideration"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCurrentRrmConsiderationsForAnApOnASpecificBand
      tags:
        - Sites RRM
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
      - description: radio band
        in: path
        name: band
        required: true
        schema:
          enum:
            - "24"
            - "5"
            - "6"
          type: string
  "/api/v1/sites/{site_id}/rrm/events":
    get:
      description: Get Site RRM Events
      operationId: getSiteRrmEvents
      parameters:
        - in: query
          name: band
          required: true
          schema:
            enum:
              - "24"
              - "5"
              - "6"
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/RrmEvents"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteRrmEvents
      tags:
        - Sites RRM
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/rrm/optimize":
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Optimize Site RRM
      operationId: optimizeSiteRrm
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  bands:
                    - "24"
                    - "5"
                    - "6"
            schema:
              properties:
                bands:
                  description: list of bands
                  items:
                    type: string
                  type: array
                macs:
                  description: targeting AP (neighbor APs may get changed, too), default is empty for ALL APs
                  items:
                    example: 5c5b35000001
                    type: string
                  type: array
                txpower_only:
                  default: false
                  description: only changng TX Power (will not disconnect clients)
                  type: boolean
              required:
                - bands
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: optimizeSiteRrm
      tags:
        - Sites RRM
  "/api/v1/sites/{site_id}/rssizones":
    get:
      description: Get List of Site RSSI Zone (RSSI-based)
      operationId: listSiteRssiZones
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - created_time: 0
                      devices:
                        - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                          rssi: 0
                      id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      modified_time: 0
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              schema:
                items:
                  $ref: "#/components/schemas/rssizone"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteRssiZones
      tags:
        - Sites Rssizones
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create RSSI Zone
      operationId: createSiteRssiZone
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  devices:
                    - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      rssi: 0
                  name: string
            schema:
              $ref: "#/components/schemas/rssizone"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 0
                    devices:
                      - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                        rssi: 0
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    modified_time: 0
                    name: string
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              schema:
                $ref: "#/components/schemas/rssizone"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteRssiZone
      tags:
        - Sites Rssizones
  "/api/v1/sites/{site_id}/rssizones/{rssizone_id}":
    delete:
      description: Delete Site RSSI Zone
      operationId: deleteSiteRssiZone
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteRssiZone
      tags:
        - Sites Rssizones
    get:
      description: Get Site RSSI Zone details
      operationId: getSiteRssiZone
      responses:
        "200":
          $ref: "#/components/responses/RssizonesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteRssiZone
      tags:
        - Sites Rssizones
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/rssizone_id"
    put:
      description: Update Site RSSI Zone
      operationId: updateSiteRssiZone
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  devices:
                    - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      rssi: 0
                  name: string
            schema:
              $ref: "#/components/schemas/rssizone"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Rssizone"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteRssiZone
      tags:
        - Sites Rssizones
  "/api/v1/sites/{site_id}/setting":
    get:
      description: Get Site Settings
      operationId: getSiteSetting
      responses:
        "200":
          $ref: "#/components/responses/SiteSettings"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSetting
      tags:
        - Sites Setting
    parameters:
      - $ref: "#/components/parameters/site_id"
    put:
      description: Update Site Settings
      operationId: updateSiteSettings
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  additional_config_cmds:
                    - string
                  analytic:
                    enabled: false
                  ap_matching:
                    enabled: true
                    rules:
                      - match_model: string
                        name: string
                        port_config:
                          property1:
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                          property2:
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                  ap_port_config:
                    model_specific:
                      property1:
                        property1:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                            coa_enabled: false
                            coa_port: 3799
                            network: string
                            source_ip: string
                          radsec:
                            enabled: true
                            idle_timeout: 0
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                        property2:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                            coa_enabled: false
                            coa_port: 3799
                            network: string
                            source_ip: string
                          radsec:
                            enabled: true
                            idle_timeout: 0
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                      property2:
                        property1:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                            coa_enabled: false
                            coa_port: 3799
                            network: string
                            source_ip: string
                          radsec:
                            enabled: true
                            idle_timeout: 0
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                        property2:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                            coa_enabled: false
                            coa_port: 3799
                            network: string
                            source_ip: string
                          radsec:
                            enabled: true
                            idle_timeout: 0
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                  auto_upgrade:
                    custom_versions:
                      property1: string
                      property2: string
                    day_of_week: any
                    enabled: false
                    time_of_day: string
                    version: stable
                  bgp_groups:
                    property1:
                      type: external
                    property2:
                      type: external
                  blacklist_url: string
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: default
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: false
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                    power: 9
                    power_mode: string
                  config_auto_revert: false
                  created_time: 0
                  device_updown_threshold: 0
                  dns_servers:
                    - string
                  dns_suffix:
                    - string
                  enable_channel_144: false
                  engagement:
                    dwell_tag_names:
                      bounce: string
                      engaged: string
                      passerby: string
                      stationed: string
                    dwell_tags:
                      bounce: string
                      engaged: string
                      passerby: string
                      stationed: string
                    hours:
                      fri: string
                      mon: string
                      sta: string
                      sun: string
                      thu: string
                      tue: string
                      wed: string
                    max_dwell: 43200
                    min_dwell: 0
                  evpn_options:
                    overlay:
                      as: 65000
                    underlay:
                      as_base: 65001
                      routed_id_prefix: /24
                      subnet: 10.255.240.0/20
                  flags:
                    property1: string
                    property2: string
                  for_site: true
                  gateway_mgmt:
                    app_probing:
                      apps:
                        - string
                      custom_apps:
                        - app_type: string
                          hostname:
                            - string
                          name: string
                          protocol: http
                      enabled: true
                    app_usage: true
                    config_revert_timer: 10
                    security_log_source_address: string
                    security_log_source_interface: string
                  id: 498f6eca-6276-4993-dfeb-53cbbbba6f08
                  led:
                    brightness: 0
                    enabled: true
                  modified_time: 0
                  mxedge_mgmt:
                    "": string
                    mist_password: string
                    root_password: string
                  mxtunnels:
                    ap_subnets:
                      - string
                    clusters:
                      - name: string
                        tunterm_hosts:
                          - string
                    created_time: 0
                    for_site: true
                    hello_interval: 60
                    hello_retries: 7
                    hosts:
                      - string
                    id: 499f6eca-6276-4993-efeb-53cbbbba6f08
                    modified_time: 0
                    mtu: 0
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    protocol: udp
                    radsec:
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      enabled: true
                      use_mxedge: true
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    vlan_ids:
                      - 0
                  networks:
                    property1:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                    property2:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                  ntp_servers:
                    - string
                  occupancy:
                    assets_enabled: false
                    clients_enabled: true
                    min_duration: 3000
                    sdkclients_enabled: false
                    unconnected_clients_enabled: false
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  ospf_areas:
                    property1:
                      networks:
                        property1:
                          auth_keys:
                            property1: string
                            property2: string
                          auth_password: string
                          auth_type: none
                          interface_type: nbma
                          passive: false
                        property2:
                          auth_keys:
                            property1: string
                            property2: string
                          auth_password: string
                          auth_type: none
                          interface_type: nbma
                          passive: false
                      type: default
                    property2:
                      networks:
                        property1:
                          auth_keys:
                            property1: string
                            property2: string
                          auth_password: string
                          auth_type: none
                          interface_type: nbma
                          passive: false
                        property2:
                          auth_keys:
                            property1: string
                            property2: string
                          auth_password: string
                          auth_type: none
                          interface_type: nbma
                          passive: false
                      type: default
                  persist_config_on_device: false
                  port_usages:
                    dynamic:
                      mode: dynamic
                      reset_default_when: link_down
                      rules:
                        - equals: string
                          expression: string
                          src: lldp_chassis_id
                          usage: string
                    property1:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                    property2:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                  proxy:
                    url: string
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    scanning_enabled: true
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  remote_syslog:
                    enabled: true
                    send_to_all_servers: true
                    servers:
                      - facility: authorization
                        host: string
                        port: 0
                        protocol: udp
                        severity: any
                        tag: string
                  report_gatt: false
                  rogue:
                    enabled: true
                    honeypot_enabled: true
                    min_duration: 10
                    min_rssi: -80
                    whitelisted_bssids:
                      - string
                    whitelisted_ssids:
                      - string
                  rtsa:
                    app_waking: false
                    disable_dead_reckoning: true
                    disable_pressure_sensor: true
                    enabled: true
                    track_asset: true
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  skyatp:
                    enabled: true
                    send_ip_mac_mapping: true
                  srx_app:
                    enabled: false
                  ssh_keys:
                    - string
                  status_portal:
                    enabled: true
                    hostnames:
                      - string
                  switch_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: true
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            poe_disabled: true
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: true
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            poe_disabled: true
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                  switch_mgmt:
                    config_revert_timer: 10
                    mxedge_proxy_host: string
                    mxedge_proxy_port: 2222
                    root_password: string
                    use_mxedge_proxy: true
                  track_anonymous_devices: false
                  tunterm_monitoring:
                    - host: string
                      port: 0
                      protocol: arp
                      timeout: 300
                  vars:
                    property1: string
                    property2: string
                  vna:
                    enabled: false
                  vrf_instances:
                    property1:
                      extra_routes:
                        property1:
                          via: 192.168.0.1
                        property2:
                          via: 192.168.0.1
                      networks:
                        - string
                    property2:
                      extra_routes:
                        property1:
                          via: 192.168.0.1
                        property2:
                          via: 192.168.0.1
                      networks:
                        - string
                  vrrp_groups:
                    property1:
                      auth_key: string
                      auth_password: string
                      auth_type: md5
                      networks:
                        property1:
                          ip: string
                        property2:
                          ip: string
                    property2:
                      auth_key: string
                      auth_password: string
                      auth_type: md5
                      networks:
                        property1:
                          ip: string
                        property2:
                          ip: string
                  wan_vna:
                    enabled: false
                  watched_station_url: string
                  whitelist_url: string
                  wids:
                    repeated_auth_failures:
                      duration: 0
                      threshold: 0
                  wifi:
                    cisco_enabled: true
                    disable_11k: false
                    disable_radios_when_power_constrained: true
                    enable_arp_spoof_check: false
                    enable_channel_144: false
                    enable_shared_radio_scanning: true
                    enable_vna: false
                    enabled: true
                    locate_connected: false
                    locate_unconnected: false
                    mesh_allow_dfs: false
                    mesh_enabled: false
                    proxy_arp: default
                  wired_vna:
                    enabled: false
                  zone_occupancy_alert:
                    email_notifiers:
                      - string
                    enabled: false
                    threshold: 5
            schema:
              $ref: "#/components/schemas/site_setting"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/SiteSettings"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteSettings
      tags:
        - Sites Setting
  "/api/v1/sites/{site_id}/setting/blacklist":
    delete:
      description: Delete Site Blacklist Station Clients
      operationId: deleteSiteClientsBlocklist
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteClientsBlocklist
      tags:
        - Sites Setting
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        This endpoint is to provide list of client macs for annotation blacklist.

        Retrieve the current clients list `blacklist_url` under Site:Setting
      operationId: createSiteClientsBlocklist
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 18-65-90-de-f4-c6
                    - 84-89-ad-5d-69-0d
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/MacsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteClientsBlocklist
      tags:
        - Sites Setting
  "/api/v1/sites/{site_id}/setting/watched_station":
    delete:
      description: Delete Site Watched Station Clients
      operationId: deleteSiteWatchedStations
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWatchedStations
      tags:
        - Sites Setting
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        This endpoint is to provide list of client macs for annotation as  watched station.

        Retrieve the current clients list from  `watched_station_url` under Site:Setting
      operationId: createSiteWatchedStations
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 18-65-90-de-f4-c6
                    - 84-89-ad-5d-69-0d
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/MacsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWatchedStations
      tags:
        - Sites Setting
  "/api/v1/sites/{site_id}/setting/whitelist":
    delete:
      description: Delete Site Whitelist Station Clients
      operationId: deleteSiteClientsAllowlist
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteClientsAllowlist
      tags:
        - Sites Setting
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |-
        This endpoint is to provide list of client macs for annotation as whitelist.

        Retrieve the current clients list from `whitelist_url` under Site:Setting
      operationId: createSiteClientsAllowlist
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  macs:
                    - 18-65-90-de-f4-c6
                    - 84-89-ad-5d-69-0d
            schema:
              $ref: "#/components/schemas/Model_object_macs_array_string"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/MacsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteClientsAllowlist
      tags:
        - Sites Setting
  "/api/v1/sites/{site_id}/skyatp/events/count":
    get:
      description: Count by Distinct Attributes of Skyatp Events (WIP)
      operationId: countSiteByDistringAttributesOfSkyatpEvents
      parameters:
        - in: query
          name: distinct
          schema:
            default: type
            enum:
              - type
              - mac
              - device_mac
              - threat_level
            type: string
        - description: event type, e.g. cc, fs, mw
          in: query
          name: type
          schema:
            type: string
        - description: client MAC
          in: query
          name: mac
          schema:
            type: string
        - description: device MAC
          in: query
          name: device_mac
          schema:
            type: string
        - description: threat level
          in: query
          name: threat_level
          schema:
            type: integer
        - $ref: "#/components/parameters/ip"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteByDistringAttributesOfSkyatpEvents
      tags:
        - Sites Skyatp
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/skyatp/events/search":
    get:
      description: Search Skyatp Events (WIP)
      operationId: searchSiteSkyatpEvents
      parameters:
        - description: event type, e.g. cc, fs, mw
          in: query
          name: type
          schema:
            type: string
        - description: client MAC
          in: query
          name: mac
          schema:
            type: string
        - description: device MAC
          in: query
          name: device_mac
          schema:
            type: string
        - description: threat level
          in: query
          name: threat_level
          schema:
            type: integer
        - $ref: "#/components/parameters/ip"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1513176951
                    limit: 10
                    results:
                      - device_mac: 658279bb1fa4
                        ip: 172.16.0.11
                        mac: b019c66c8348
                        org_id: 3139f2c2-fac6-11e5-8156-0242ac110006
                        site_id: 70e0f468-fc13-11e5-85ad-0242ac110008
                        threat_level: 7
                        timestamp: 1592524478
                        type: cc
                    start: 1512572151
                    total: 1
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      $ref: "#/components/schemas/events_skyatp"
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteSkyatpEvents
      tags:
        - Sites Skyatp
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/classifier/{classifier}/summary":
    get:
      description: Get SLE classifier details
      operationId: getSiteSleClassifierDetails
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/SleClassifierSummary"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleClassifierDetails
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
      - in: path
        name: classifier
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/classifiers":
    get:
      description: Get the list of classifiers for a specific metric
      operationId: getSiteSleMetricClassifiers
      responses:
        "200":
          content:
            application/json:
              examples:
                example:
                  value:
                    - asymmetry-uplink
                    - weak-signal
                    - asymmetry-downlink
              schema:
                items:
                  type: string
                type: array
                x-examples:
                  example-1:
                    - asymmetry-uplink
                    - weak-signal
                    - asymmetry-downlink
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleMetricClassifiers
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: " values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics"
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/histogram":
    get:
      description: Get the histogram for the SLE metric
      operationId: getSiteSleHistogram
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/SleHistogram"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleHistogram
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impact-summary":
    get:
      description: |-
        Get impact summary counts optionally filtered by classifier and failure type
         
        * Wireless SLE Fields: `wlan`, `device_type`, `device_os` ,`band`, `ap`, `server`, `mxedge`
        * Wired SLE Fields: `switch`, `client`, `vlan`, `interface`, `chassis`
        * WAN SLE Fields: `gateway`, `client`, `interface`, `chassis`, `peer_path`, `gateway_zones`
      operationId: getSiteSleImpactSummary
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: fields
          schema:
            enum:
              - wlan
              - device_type
              - device_os
              - band
              - ap
              - server
              - mxedge
              - switch
              - client
              - vlan
              - interface
              - chassis
              - gateway
              - peer_path
              - gateway_zones
            type: string
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactSummary"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactSummary
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-applications":
    get:
      description: For WAN SLEs. Get list of impacted interfaces optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedApplications
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedApplications"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedApplications
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - switch
            - gateway
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-aps":
    get:
      description: For Wireless SLEs. Get list of impacted APs optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedAps
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedAps"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedAps
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-chassis":
    get:
      description: For Wired and WAN SLEs. Get list of impacted interfaces optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedChassis
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedChassis"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedChassis
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - switch
            - gateway
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-clients":
    get:
      description: For Wired SLEs. Get list of impacted interfaces optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedWiredClients
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedClients"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedWiredClients
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - switch
            - gateway
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-gateways":
    get:
      description: For WAN SLEs. Get list of impacted interfaces optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedGateways
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedGateways"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedGateways
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-interfaces":
    get:
      description: For Wired and WAN SLEs. Get list of impacted interfaces optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedInterfaces
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedInterfaces"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedInterfaces
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - switch
            - gateway
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-switches":
    get:
      description: For Wired SLEs. Get list of impacted switches optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedSwitches
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedSwitches"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedSwitches
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/impacted-users":
    get:
      description: For Wireless SLEs. Get list of impacted wireless users optionally filtered by classifier and failure type
      operationId: getSiteSleImpactedWirelessClients
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: classifier
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/SleImpactedUsers"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleImpactedWirelessClients
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
          type: string
      - in: path
        name: scope_id
        required: true
        schema:
          format: uuid
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/summary":
    get:
      description: " Get the summary for the SLE metric"
      operationId: getSiteSleSummary
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/SleSummary"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleSummary
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metric/{metric}/threshold":
    get:
      description: Get the SLE threshold
      operationId: getSiteSleThreshold
      responses:
        "200":
          $ref: "#/components/responses/SleThreshold"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSleThreshold
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
      - description: values from /api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics
        in: path
        name: metric
        required: true
        schema:
          type: string
    post:
      description: Replace the SLE threshold
      operationId: replaceSiteSleThreshold
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  maximum: -60
                  minimum: -90
            schema:
              $ref: "#/components/schemas/sle_threshold"
      responses:
        "200":
          $ref: "#/components/responses/SleThreshold"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: replaceSiteSleThreshold
      tags:
        - Sites SLEs
    put:
      description: Update the SLE threshold
      operationId: updateSiteSleThreshold
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  maximum: -60
                  minimum: -90
            schema:
              $ref: "#/components/schemas/sle_threshold"
      responses:
        "200":
          $ref: "#/components/responses/SleThreshold"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteSleThreshold
      tags:
        - Sites SLEs
  "/api/v1/sites/{site_id}/sle/{scope}/{scope_id}/metrics":
    get:
      description: Get the list of metrics for the given scope
      operationId: getSiteSlesMetrics
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    enabled:
                      - coverage
                      - capacity
                      - time-to-connect
                      - failed-to-connect
                      - roaming
                      - roaming-v2
                      - throughput
                      - switch-health
                      - switch-throughput
                      - switch-stc
                      - gateway-health
                      - application-health
                      - wan-link-health
                      - ap-availability
                    supported:
                      - coverage
                      - capacity
                      - time-to-connect
                      - failed-to-connect
                      - roaming
                      - roaming-v2
                      - location-jitter
                      - location-latency
                      - throughput
                      - location-dropped-requests
                      - switch-health
                      - switch-throughput
                      - switch-stc
                      - gateway-health
                      - application-health
                      - wan-link-health
                      - ap-availability
                      - location-sdk-connect-time
                      - location-ble-hung
              schema:
                description: ""
                properties:
                  enabled:
                    items:
                      type: string
                    type: array
                  supported:
                    items:
                      type: string
                    type: array
                required:
                  - supported
                  - enabled
                type: object
                x-examples:
                  example-1:
                    enabled:
                      - coverage
                      - capacity
                      - time-to-connect
                      - failed-to-connect
                      - roaming
                      - roaming-v2
                      - throughput
                      - switch-health
                      - switch-throughput
                      - switch-stc
                      - gateway-health
                      - application-health
                      - wan-link-health
                      - ap-availability
                    supported:
                      - coverage
                      - capacity
                      - time-to-connect
                      - failed-to-connect
                      - roaming
                      - roaming-v2
                      - location-jitter
                      - location-latency
                      - throughput
                      - location-dropped-requests
                      - switch-health
                      - switch-throughput
                      - switch-stc
                      - gateway-health
                      - application-health
                      - wan-link-health
                      - ap-availability
                      - location-sdk-connect-time
                      - location-ble-hung
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSlesMetrics
      tags:
        - Sites SLEs
    parameters:
      - $ref: "#/components/parameters/site_id"
      - in: path
        name: scope
        required: true
        schema:
          enum:
            - site
            - ap
            - switch
            - gateway
            - client
          type: string
      - description: |-
          * site_id if `scope`==`site`
          * device_id if `scope`==`ap`, `scope`==`switch` or `scope`==`gateway`
          * mac if `scope`==`client`
        in: path
        name: scope_id
        required: true
        schema:
          type: string
  "/api/v1/sites/{site_id}/ssr/upgrade/{upgrade_id}":
    get:
      description: Get Specific Site SSR Upgrade
      operationId: getSiteSsrUpgrade
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  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: {}
              schema:
                description: ""
                properties:
                  channel:
                    minLength: 1
                    type: string
                  device_type:
                    type: string
                  id:
                    minLength: 1
                    type: string
                  status:
                    minLength: 1
                    type: string
                  targets:
                    properties:
                      failed:
                        items:
                          type: string
                        type: array
                      queued:
                        items:
                          type: string
                        type: array
                      success:
                        items:
                          type: string
                        type: array
                      upgrading:
                        items:
                          type: string
                        type: array
                    required:
                      - queued
                      - upgrading
                      - success
                      - failed
                    type: object
                  versions:
                    type: object
                required:
                  - status
                  - versions
                  - channel
                  - id
                  - targets
                type: object
                x-examples:
                  example-1:
                    channel: stable
                    id: 5cbcee0a-c620-4bb4-a25e-15000934e9d8
                    status: upgrading
                    targets:
                      failed: []
                      queued: []
                      success: []
                      upgrading:
                        - 8e525f1d-4178-4ae1-a988-2b0176855e55
                    versions: {}
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSsrUpgrade
      tags:
        - Sites Devices Upgrades
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/upgrade_id"
  "/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: upgradeSiteSsr
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  channel: stable
                  version: 5.3.1-170-93
            schema:
              description: ""
              properties:
                channel:
                  default: stable
                  description: upgrade channel to follow
                  enum:
                    - stable
                    - beta
                    - alpha
                  type: string
                reboot_at:
                  description: eboot 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
              x-examples:
                example-1:
                  version: 5.3.1-17
      responses:
        "200":
          $ref: "#/components/responses/SsrUpgrade"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: upgradeSiteSsr
      tags:
        - Sites Devices Upgrades
  "/api/v1/sites/{site_id}/stats":
    get:
      description: Get Site Stats
      operationId: getSiteStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    address: string
                    alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    country_code: string
                    created_time: 0
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    lat: 0
                    latlng:
                      lat: 0
                      lng: 0
                    lng: 0
                    modified_time: 0
                    msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    name: string
                    networktemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    num_ap: 0
                    num_ap_connected: 0
                    num_clients: 0
                    num_devices: 0
                    num_devices_connected: 0
                    num_gateway: 0
                    num_gateway_connected: 0
                    num_switch: 0
                    num_switch_connected: 0
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    rftemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                    timezone: string
                    tzoffset: 0
              schema:
                $ref: "#/components/schemas/stats_site"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/apps/count":
    get:
      description: Count by Distinct Attributes of Applications
      operationId: countSiteApps
      parameters:
        - description: Default for wireless devices is `ap`. Default for wired devices is `device_mac`
          in: query
          name: distinct
          schema:
            enum:
              - ap
              - wcid
              - ssid
              - wlan_id app
              - device_mac
              - src_ip
              - port_id
              - app
              - category
              - service
            type: string
        - description: MAC of the device
          in: query
          name: device_mac
          schema:
            type: string
        - description: Application name
          in: query
          name: app
          schema:
            type: string
        - description: If a device is wired or wireless. Default is False.
          in: query
          name: wired
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteApps
      tags:
        - Sites Applications
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/assets":
    get:
      description: Get List of Site Assets Stats
      operationId: listSiteAssetsStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AssetsArrayStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteAssetsStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/assets/asset_id":
    get:
      description: Get Site Asset Details
      operationId: getSiteAssetStats
      parameters:
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AssetStats"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAssetStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/assets/count":
    get:
      description: Count Asset by distinct field
      operationId: countSiteAssets
      parameters:
        - in: query
          name: distinct
          schema:
            default: map_id
            enum:
              - mac
              - map_id
              - ibeacon_uuid
              - ibeacon_major
              - ibeacon_minor
              - eddystone_uid_namespace
              - eddystone_uid_instance
              - eddystone_url
              - by
              - name
              - device_name
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteAssets
      tags:
        - Sites Assets
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/assets/search":
    get:
      description: Assets Search
      operationId: searchSiteAssets
      parameters:
        - in: query
          name: mac
          schema:
            type: string
        - in: query
          name: map_id
          schema:
            format: uuid
            type: string
        - in: query
          name: ibeacon_uuid
          schema:
            format: uuid
            type: string
        - in: query
          name: ibeacon_major
          schema:
            type: integer
        - in: query
          name: ibeacon_minor
          schema:
            type: integer
        - in: query
          name: eddystone_uid_namespace
          schema:
            type: string
        - in: query
          name: eddystone_uid_instance
          schema:
            type: string
        - in: query
          name: eddystone_url
          schema:
            type: string
        - in: query
          name: device_name
          schema:
            type: string
        - in: query
          name: by
          schema:
            type: string
        - in: query
          name: name
          schema:
            type: string
        - in: query
          name: ap_mac
          schema:
            type: string
        - in: query
          name: beam
          schema:
            type: string
        - in: query
          name: rssi
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/AssetsArrayStatsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteAssets
      tags:
        - Sites Assets
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/beacons":
    get:
      description: Get List of Site Beacons Stats
      operationId: listSiteBeaconsStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/stats_beacon"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteBeaconsStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/bgp_peers/count":
    get:
      description: Count BGP Stats
      operationId: countSiteBgpStats
      parameters:
        - in: query
          name: state
          schema:
            type: string
        - in: query
          name: distinct
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteBgpStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/bgp_peers/search":
    get:
      description: Search BGP Stats
      operationId: searchSiteBgpStats
      responses:
        "200":
          $ref: "#/components/responses/BgpStatsArraySearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteBgpStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/calls/count":
    get:
      description: Count by Distinct Attributes of Calls
      operationId: countSiteCalls
      parameters:
        - in: query
          name: distrinct
          schema:
            default: mac
            enum:
              - mac
            type: string
        - in: query
          name: app
          schema:
            type: string
        - in: query
          name: start
          schema:
            type: string
        - in: query
          name: end
          schema:
            type: string
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteCalls
      tags:
        - Sites Calls
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/calls/search":
    get:
      description: Search Calls
      operationId: searchSiteCalls
      parameters:
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Third party app name
          in: query
          name: app
          schema:
            example: zoom
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/CallStatsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteCalls
      tags:
        - Sites Calls
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/clients":
    get:
      description: Get List of Site All Clients Stats Details
      operationId: listSiteClientsStats
      parameters:
        - in: query
          name: wired
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              examples:
                Wired Client:
                  value:
                    - _id: 003ee1bec926
                      _ttl: 277
                      ap_id: 00000000-0000-0000-1000-d420b085fdff
                      auth_state: authorizedForCompleteAccess
                      eth_port: eth1
                      last_seen: 1645060912.0751352
                      mac: e45f01319a43
                      rx_bytes: 0
                      rx_pkts: 0
                      site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                      tx_bytes: 0
                      tx_pkts: 0
                      uptime: 8723766
                      vlan_id: 70
                Wireless Client:
                  value:
                    - _ttl: 0
                      accuracy: 0
                      airespace_ifname: string
                      airwatch:
                        authorized: true
                      ap_id: 325b588d-147b-4fa4-bb40-83383f83c77e
                      ap_mac: string
                      band: "24"
                      channel: 0
                      dual_band: true
                      family: string
                      guest:
                        authorized: false
                        authorized_expiring_time: 0
                        authorized_time: 0
                        company: string
                        email: string
                        field1: string
                        name: string
                      hostname: string
                      idle_time: 0
                      ip: string
                      is_guest: false
                      key_mgmt: string
                      last_seen: 0
                      mac: string
                      manufacture: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      model: string
                      num_locating_aps: 0
                      os: string
                      power_saving: true
                      proto: a
                      psk_id: 4cb94c10-4e99-46b0-8261-4c71d0b2cb9d
                      rssi: 0
                      rssizones:
                        - id: 500f6eca-6276-4993-ffeb-53cbbbba6f08
                          since: 0
                      rx_bps: 0
                      rx_bytes: 0
                      rx_packets: 0
                      rx_rate: 0
                      rx_retries: 0
                      snr: 0
                      ssid: string
                      tx_bps: 0
                      tx_bytes: 0
                      tx_packets: 0
                      tx_rate: 0
                      tx_retries: 0
                      type: string
                      uptime: 0
                      username: string
                      vbeacons:
                        - id: 496f6eca-6276-4993-bfeb-63cbbbba6f08
                          since: 0
                      vlan_id: 0
                      wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
                      wxrule_id: 722ef429-6c3a-422c-83d1-2c18f12bd5d4
                      wxrule_usage:
                        - tag_id: 39c8a0b3-fbe8-4801-95bf-e8a0792edf1d
                          usage: 0
                      x: 0
                      y: 0
                      zones:
                        - id: 494f6eca-6276-4993-bfeb-73cbbbba6f08
                          since: 0
              schema:
                items:
                  oneOf:
                    - $ref: "#/components/schemas/stats_client_detail"
                    - $ref: "#/components/schemas/stats_client_wired"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteClientsStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/clients/{client_mac}":
    get:
      description: Get Site Client Stats Details
      operationId: getSiteClientStats
      parameters:
        - in: query
          name: wired
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              examples:
                Wired Client:
                  value:
                    _id: 003ee1bec926
                    _ttl: 277
                    ap_id: 00000000-0000-0000-1000-d420b085fdff
                    auth_state: authorizedForCompleteAccess
                    eth_port: eth1
                    last_seen: 1645060912.0751352
                    mac: e45f01319a43
                    rx_bytes: 0
                    rx_pkts: 0
                    site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                    tx_bytes: 0
                    tx_pkts: 0
                    uptime: 8723766
                    vlan_id: 70
                Wireless Client:
                  value:
                    - _ttl: 0
                      accuracy: 0
                      airespace_ifname: string
                      airwatch:
                        authorized: true
                      ap_id: 325b588d-147b-4fa4-bb40-83383f83c77e
                      ap_mac: string
                      band: "24"
                      channel: 0
                      dual_band: true
                      family: string
                      guest:
                        authorized: false
                        authorized_expiring_time: 0
                        authorized_time: 0
                        company: string
                        email: string
                        field1: string
                        name: string
                      hostname: string
                      idle_time: 0
                      ip: string
                      is_guest: false
                      key_mgmt: string
                      last_seen: 0
                      mac: string
                      manufacture: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      model: string
                      num_locating_aps: 0
                      os: string
                      power_saving: true
                      proto: a
                      psk_id: 4cb94c10-4e99-46b0-8261-4c71d0b2cb9d
                      rssi: 0
                      rssizones:
                        - id: 500f6eca-6276-4993-ffeb-53cbbbba6f08
                          since: 0
                      rx_bps: 0
                      rx_bytes: 0
                      rx_packets: 0
                      rx_rate: 0
                      rx_retries: 0
                      snr: 0
                      ssid: string
                      tx_bps: 0
                      tx_bytes: 0
                      tx_packets: 0
                      tx_rate: 0
                      tx_retries: 0
                      type: string
                      uptime: 0
                      username: string
                      vbeacons:
                        - id: 496f6eca-6276-4993-bfeb-63cbbbba6f08
                          since: 0
                      vlan_id: 0
                      wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
                      wxrule_id: 722ef429-6c3a-422c-83d1-2c18f12bd5d4
                      wxrule_usage:
                        - tag_id: 39c8a0b3-fbe8-4801-95bf-e8a0792edf1d
                          usage: 0
                      x: 0
                      y: 0
                      zones:
                        - id: 494f6eca-6276-4993-bfeb-73cbbbba6f08
                          since: 0
              schema:
                oneOf:
                  - $ref: "#/components/schemas/stats_client_detail"
                  - $ref: "#/components/schemas/stats_client_wired"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteClientStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/client_mac"
  "/api/v1/sites/{site_id}/stats/devices":
    get:
      description: Get List of Site Devices Stats
      operationId: listSiteDevicesStats
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
        - in: query
          name: type
          schema:
            default: ap
            enum:
              - ap
              - switch
              - gateway
              - all
            type: string
        - in: query
          name: status
          schema:
            default: all
            enum:
              - all
              - connected
              - disconnected
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                AP:
                  value:
                    - ble_config:
                        beacon_rate: 3
                        beacon_rate_model: custom
                        beam_disabled:
                          - 1
                          - 3
                          - 6
                        power: 10
                        power_mode: custom
                      ble_stat:
                        beacon_rate: 3
                        eddystone_uid_enabled: false
                        eddystone_uid_freq_msec: 200
                        eddystone_uid_instance: 5c5b35000001
                        eddystone_uid_namespace: 2818e3868dec25629ede
                        eddystone_url_enabled: true
                        eddystone_url_freq_msec: 100
                        eddystone_url_url: https://www.abc.com
                        ibeacon_enabled: true
                        ibeacon_major: 13
                        ibeacon_minor: 138
                        ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                        major: 12345
                        minors:
                          - 201
                          - 202
                          - 203
                          - 204
                          - 205
                          - 206
                          - 207
                          - 208
                        power: 10
                        rx_bytes: 135
                        rx_pkts: 135
                        tx_bytes: 5231513353
                        tx_pkts: 135135135
                        tx_resets: 0
                        uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                      cert_expiry: 1534534392
                      ext_ip: 73.92.124.103
                      fwupdate:
                        progress: 10
                        status: inprogress
                        status_id: 5
                        timestamp: 1428949501
                      iot_stat:
                        DI2:
                          value: 0
                      ip: 10.2.9.159
                      ip_config:
                        dns:
                          - 8.8.8.8
                          - 4.4.4.4
                        dns_suffix:
                          - .mist.local
                          - .mist.com
                        gateway: 10.2.1.254
                        ip: 10.2.1.1
                        netmask: 255.255.255.0
                        type: static
                      ip_stat:
                        dns:
                          - 8.8.8.8
                          - 4.4.4.4
                        dns_suffix:
                          - .mist.local
                          - .mist.com
                        gateway: 10.2.1.254
                        gateway6: 2607:f8b0:4005:808::1
                        ip: 10.2.1.1
                        ip6: 2607:f8b0:4005:808::2004
                        ips:
                          vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                          vlan193: 10.73.1.31/16
                          vlan3157: 10.72.11.14/24
                        netmask: 255.255.255.0
                        netmask6: /32
                      l2tp_stat:
                        7dae216d-7c98-a51b-e068-dd7d477b7216:
                          sessions:
                            - local_sid: 31
                              remote_id: vpn1
                              remote_sid: 13
                              state: established
                          state: established_with_sessions
                          uptime: 135
                          wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                      last_seen: 1470417522
                      last_trouble:
                        code: "03"
                        timestamp: 1428949501
                      led:
                        brightness: 255
                        enabled: true
                      lldp_stat:
                        chassis_id: 63:68:61:73:73:69
                        lldp_med_supported: false
                        mgmt_addr: 10.1.5.2
                        port_desc: 2/26
                        power_allocated: 15500
                        power_draw: 15000
                        power_request_count: 3
                        power_requested: 25500
                        system_desc: HP J9729A 2920-48G-POE+ Switch
                        system_name: TC2-OWL-Stack-01
                      locating: false
                      mac: 5c5b35000010
                      map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                      mesh_downlinks:
                        00000000-0000-0000-1000-5c5b356be59f:
                          band: "24"
                          channel: 7
                          idle_time: 3
                          last_seen: 1470417522
                          proto: a
                          rssi: -65
                          rx_bps: 12
                          rx_bytes: 217416
                          rx_packets: 2337
                          rx_rate: 65
                          rx_retries: 5
                          snr: 31
                          tx_bps: 6
                          tx_bytes: 175132
                          tx_packets: 1566
                          tx_rate: 65
                          tx_retries: 500
                      mesh_uplink:
                        band: "24"
                        channel: 7
                        idle_time: 3
                        last_seen: 1470417522
                        proto: a
                        rssi: -65
                        rx_bps: 12
                        rx_bytes: 217416
                        rx_packets: 2337
                        rx_rate: 65
                        rx_retries: 5
                        snr: 31
                        tx_bps: 6
                        tx_bytes: 175132
                        tx_packets: 1566
                        tx_rate: 65
                        tx_retries: 500
                        uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
                      model: AP200
                      name: conference room
                      num_clients: 10
                      port_stat:
                        eth0:
                          full_duplex: true
                          rx_bytes: 2056
                          rx_errors: 0
                          rx_pkts: 670
                          speed: 1000
                          tx_bytes: 2056
                          tx_pkts: 670
                          up: true
                        eth1:
                          up: false
                        module:
                          up: false
                      power_budget: -12000
                      power_src: PoE 802.3af
                      radio_config:
                        band_24:
                          bandwidth: 20
                          channel: 0
                          dynamic_chaining_enabled: false
                          power: 0
                          rx_chain: 4
                          tx_chain: 4
                        band_5:
                          bandwidth: 40
                          channel: 0
                          dynamic_chaining_enabled: false
                          power: 0
                          rx_chain: 4
                          tx_chain: 1
                        scanning_enabled: true
                      radio_stat:
                        band_24:
                          bandwidth: 20
                          channel: 6
                          mac: 5c5b350004a0
                          num_clients: 6
                          power: 19
                          rx_bytes: 8504737800
                          rx_pkts: 57731964
                          tx_bytes: 211166512114
                          tx_pkts: 812058566
                        band_5:
                          bandwidth: 80
                          channel: 44
                          mac: 5c5b350004b0
                          num_clients: 4
                          power: 15
                          rx_bytes: 10366616
                          rx_pkts: 38603
                          tx_bytes: 50877568
                          tx_pkts: 145496
                      rx_bps: 60003
                      rx_bytes: 8515104416
                      rx_pkts: 57770567
                      serial: FXLH2015170017
                      status: connected
                      tx_bps: 634301
                      tx_bytes: 211217389682
                      tx_pkts: 812204062
                      type: ap
                      uptime: 13500
                      usb_stat:
                        channel: 3
                        connected: true
                        last_activity: 1586873254
                        type: imagotag
                        up: true
                      version: 1.0.0
                      x: 53.5
                      y: 173.1
                Gateway:
                  value:
                    - cluster_stat:
                        node0:
                          status: ""
                        node1: {}
                      cpu2_stat: ""
                      cpu_stat:
                        idle: 28
                        interrupt: 8
                        load_avg:
                          - 0.9700000286102295
                          - 1.0499999523162842
                          - 1.0199999809265137
                        system: 41
                        user: 23
                      hostname: sj1
                      ip: 10.2.11.137
                      ip_stat:
                        dns:
                          - 8.8.8.8
                          - 4.4.4.4
                        dns_suffix:
                          - .mist.local
                          - .mist.com
                        gateway: 10.2.1.1
                        gateway6: 2607:f8b0:4005:808::1
                        ip: 10.2.11.137
                        ip6: 2607:f8b0:4005:808::2004
                        ips:
                          vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                          vlan193: 10.73.1.31/16
                          vlan3157: 10.72.11.14/24
                        netmask: 255.255.192.0
                        netmask6: /32
                      last_seen: 1553203563
                      mac: dc38e1dbf3cd
                      memory_stat:
                        usage: 35
                      model: SRX320
                      module2_stat: ""
                      module_stat:
                        - fans:
                            - name: Fan 0
                              status: absent
                            - airflow: out
                              name: Fan 1
                              status: ok
                          model: EX4300-48P
                          poe:
                            max_power: 250
                            power_draw: 120.3
                          psus:
                            - name: Power Supply 0
                              status: ok
                            - name: Power Supply 1
                              status: failed
                          serial: PX8716230021
                          temperatures:
                            - celsius: 45
                              name: CPU
                              status: ok
                          vc_links:
                            - neighbor_module_idx: 1
                              neighbor_port_id: vcp-255/1/0
                              port_id: vcp-255/1/0
                          vc_role: master
                      name: sj1
                      serial: TC3714190003
                      spu2_stat: ""
                      spu_stat:
                        cpu: 15
                        memory: 32
                        sessions:
                          current: 41
                          max: 65535
                          pending: 12
                          valid: 15
                      status: connected
                      type: gateway
                      uptime: 13500
                      version: 18.4R1.8
                Switch:
                  value:
                    - ble_config:
                        beacon_rate: 3
                        beacon_rate_model: custom
                        beam_disabled:
                          - 1
                          - 3
                          - 6
                        power: 10
                        power_mode: custom
                      ble_stat:
                        beacon_rate: 3
                        eddystone_uid_enabled: false
                        eddystone_uid_freq_msec: 200
                        eddystone_uid_instance: 5c5b35000001
                        eddystone_uid_namespace: 2818e3868dec25629ede
                        eddystone_url_enabled: true
                        eddystone_url_freq_msec: 100
                        eddystone_url_url: https://www.abc.com
                        ibeacon_enabled: true
                        ibeacon_major: 13
                        ibeacon_minor: 138
                        ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                        major: 12345
                        minors:
                          - 201
                          - 202
                          - 203
                          - 204
                          - 205
                          - 206
                          - 207
                          - 208
                        power: 10
                        rx_bytes: 135
                        rx_pkts: 135
                        tx_bytes: 5231513353
                        tx_pkts: 135135135
                        tx_resets: 0
                        uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                      cert_expiry: 1534534392
                      ext_ip: 73.92.124.103
                      fwupdate:
                        progress: 10
                        status: inprogress
                        status_id: 5
                        timestamp: 1428949501
                      iot_stat:
                        DI2:
                          value: 0
                      ip: 10.2.9.159
                      ip_config:
                        dns:
                          - 8.8.8.8
                          - 4.4.4.4
                        dns_suffix:
                          - .mist.local
                          - .mist.com
                        gateway: 10.2.1.254
                        ip: 10.2.1.1
                        netmask: 255.255.255.0
                        type: static
                      ip_stat:
                        dns:
                          - 8.8.8.8
                          - 4.4.4.4
                        dns_suffix:
                          - .mist.local
                          - .mist.com
                        gateway: 10.2.1.254
                        gateway6: 2607:f8b0:4005:808::1
                        ip: 10.2.1.1
                        ip6: 2607:f8b0:4005:808::2004
                        ips:
                          vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                          vlan193: 10.73.1.31/16
                          vlan3157: 10.72.11.14/24
                        netmask: 255.255.255.0
                        netmask6: /32
                      l2tp_stat:
                        7dae216d-7c98-a51b-e068-dd7d477b7216:
                          sessions:
                            - local_sid: 31
                              remote_id: vpn1
                              remote_sid: 13
                              state: established
                          state: established_with_sessions
                          uptime: 135
                          wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                      last_seen: 1470417522
                      last_trouble:
                        code: "03"
                        timestamp: 1428949501
                      led:
                        brightness: 255
                        enabled: true
                      lldp_stat:
                        chassis_id: 63:68:61:73:73:69
                        lldp_med_supported: false
                        mgmt_addr: 10.1.5.2
                        port_desc: 2/26
                        power_allocated: 15500
                        power_draw: 15000
                        power_request_count: 3
                        power_requested: 25500
                        system_desc: HP J9729A 2920-48G-POE+ Switch
                        system_name: TC2-OWL-Stack-01
                      locating: false
                      mac: 5c5b35000010
                      map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                      mesh_downlinks:
                        00000000-0000-0000-1000-5c5b356be59f:
                          band: "24"
                          channel: 7
                          idle_time: 3
                          last_seen: 1470417522
                          proto: a
                          rssi: -65
                          rx_bps: 12
                          rx_bytes: 217416
                          rx_packets: 2337
                          rx_rate: 65
                          rx_retries: 5
                          snr: 31
                          tx_bps: 6
                          tx_bytes: 175132
                          tx_packets: 1566
                          tx_rate: 65
                          tx_retries: 500
                      mesh_uplink:
                        band: "24"
                        channel: 7
                        idle_time: 3
                        last_seen: 1470417522
                        proto: a
                        rssi: -65
                        rx_bps: 12
                        rx_bytes: 217416
                        rx_packets: 2337
                        rx_rate: 65
                        rx_retries: 5
                        snr: 31
                        tx_bps: 6
                        tx_bytes: 175132
                        tx_packets: 1566
                        tx_rate: 65
                        tx_retries: 500
                        uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
                      model: AP200
                      name: conference room
                      num_clients: 10
                      port_stat:
                        eth0:
                          full_duplex: true
                          rx_bytes: 2056
                          rx_errors: 0
                          rx_pkts: 670
                          speed: 1000
                          tx_bytes: 2056
                          tx_pkts: 670
                          up: true
                        eth1:
                          up: false
                        module:
                          up: false
                      power_budget: -12000
                      power_src: PoE 802.3af
                      radio_config:
                        band_24:
                          bandwidth: 20
                          channel: 0
                          dynamic_chaining_enabled: false
                          power: 0
                          rx_chain: 4
                          tx_chain: 4
                        band_5:
                          bandwidth: 40
                          channel: 0
                          dynamic_chaining_enabled: false
                          power: 0
                          rx_chain: 4
                          tx_chain: 1
                        scanning_enabled: true
                      radio_stat:
                        band_24:
                          bandwidth: 20
                          channel: 6
                          mac: 5c5b350004a0
                          num_clients: 6
                          power: 19
                          rx_bytes: 8504737800
                          rx_pkts: 57731964
                          tx_bytes: 211166512114
                          tx_pkts: 812058566
                        band_5:
                          bandwidth: 80
                          channel: 44
                          mac: 5c5b350004b0
                          num_clients: 4
                          power: 15
                          rx_bytes: 10366616
                          rx_pkts: 38603
                          tx_bytes: 50877568
                          tx_pkts: 145496
                      rx_bps: 60003
                      rx_bytes: 8515104416
                      rx_pkts: 57770567
                      serial: FXLH2015170017
                      status: connected
                      tx_bps: 634301
                      tx_bytes: 211217389682
                      tx_pkts: 812204062
                      type: ap
                      uptime: 13500
                      usb_stat:
                        channel: 3
                        connected: true
                        last_activity: 1586873254
                        type: imagotag
                        up: true
                      version: 1.0.0
                      x: 53.5
                      y: 173.1
              schema:
                items:
                  anyOf:
                    - $ref: "#/components/schemas/stats_device_ap"
                    - $ref: "#/components/schemas/stats_device_switch"
                    - $ref: "#/components/schemas/stats_device_gateway"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteDevicesStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/devices/{device_id}":
    get:
      description: Get Site Device Stats Details
      operationId: getSiteDeviceStats
      responses:
        "200":
          content:
            application/json:
              examples:
                ap_stats:
                  value:
                    ble_config:
                      beacon_rate: 3
                      beacon_rate_model: custom
                      beam_disabled:
                        - 1
                        - 3
                        - 6
                      power: 10
                      power_mode: custom
                    ble_stat:
                      beacon_rate: 3
                      eddystone_uid_enabled: false
                      eddystone_uid_freq_msec: 200
                      eddystone_uid_instance: 5c5b35000001
                      eddystone_uid_namespace: 2818e3868dec25629ede
                      eddystone_url_enabled: true
                      eddystone_url_freq_msec: 100
                      eddystone_url_url: https://www.abc.com
                      ibeacon_enabled: true
                      ibeacon_major: 13
                      ibeacon_minor: 138
                      ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                      major: 12345
                      minors:
                        - 201
                        - 202
                        - 203
                        - 204
                        - 205
                        - 206
                        - 207
                        - 208
                      power: 10
                      rx_bytes: 135
                      rx_pkts: 135
                      tx_bytes: 5231513353
                      tx_pkts: 135135135
                      tx_resets: 0
                      uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                    cert_expiry: 1534534392
                    ext_ip: 73.92.124.103
                    fwupdate:
                      progress: 10
                      status: inprogress
                      status_id: 5
                      timestamp: 1428949501
                    iot_stat:
                      DI2:
                        value: 0
                    ip: 10.2.9.159
                    ip_config:
                      dns:
                        - 8.8.8.8
                        - 4.4.4.4
                      dns_suffix:
                        - .mist.local
                        - .mist.com
                      gateway: 10.2.1.254
                      ip: 10.2.1.1
                      netmask: 255.255.255.0
                      type: static
                    ip_stat:
                      dns:
                        - 8.8.8.8
                        - 4.4.4.4
                      dns_suffix:
                        - .mist.local
                        - .mist.com
                      gateway: 10.2.1.254
                      gateway6: 2607:f8b0:4005:808::1
                      ip: 10.2.1.1
                      ip6: 2607:f8b0:4005:808::2004
                      ips:
                        vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                        vlan193: 10.73.1.31/16
                        vlan3157: 10.72.11.14/24
                      netmask: 255.255.255.0
                      netmask6: /32
                    l2tp_stat:
                      7dae216d-7c98-a51b-e068-dd7d477b7216:
                        sessions:
                          - local_sid: 31
                            remote_id: vpn1
                            remote_sid: 13
                            state: established
                        state: established_with_sessions
                        uptime: 135
                        wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                    last_seen: 1470417522
                    last_trouble:
                      code: "03"
                      timestamp: 1428949501
                    led:
                      brightness: 255
                      enabled: true
                    lldp_stat:
                      chassis_id: 63:68:61:73:73:69
                      lldp_med_supported: false
                      mgmt_addr: 10.1.5.2
                      port_desc: 2/26
                      power_allocated: 15500
                      power_draw: 15000
                      power_request_count: 3
                      power_requested: 25500
                      system_desc: HP J9729A 2920-48G-POE+ Switch
                      system_name: TC2-OWL-Stack-01
                    locating: false
                    mac: 5c5b35000010
                    map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                    mesh_downlinks:
                      00000000-0000-0000-1000-5c5b356be59f:
                        band: "24"
                        channel: 7
                        idle_time: 3
                        last_seen: 1470417522
                        proto: a
                        rssi: -65
                        rx_bps: 12
                        rx_bytes: 217416
                        rx_packets: 2337
                        rx_rate: 65
                        rx_retries: 5
                        snr: 31
                        tx_bps: 6
                        tx_bytes: 175132
                        tx_packets: 1566
                        tx_rate: 65
                        tx_retries: 500
                    mesh_uplink:
                      band: "24"
                      channel: 7
                      idle_time: 3
                      last_seen: 1470417522
                      proto: a
                      rssi: -65
                      rx_bps: 12
                      rx_bytes: 217416
                      rx_packets: 2337
                      rx_rate: 65
                      rx_retries: 5
                      snr: 31
                      tx_bps: 6
                      tx_bytes: 175132
                      tx_packets: 1566
                      tx_rate: 65
                      tx_retries: 500
                      uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
                    model: AP200
                    name: conference room
                    num_clients: 10
                    port_stat:
                      eth0:
                        full_duplex: true
                        rx_bytes: 2056
                        rx_errors: 0
                        rx_pkts: 670
                        speed: 1000
                        tx_bytes: 2056
                        tx_pkts: 670
                        up: true
                      eth1:
                        up: false
                      module:
                        up: false
                    power_budget: -12000
                    power_src: PoE 802.3af
                    radio_config:
                      band_24:
                        bandwidth: 20
                        channel: 0
                        dynamic_chaining_enabled: false
                        power: 0
                        rx_chain: 4
                        tx_chain: 4
                      band_5:
                        bandwidth: 40
                        channel: 0
                        dynamic_chaining_enabled: false
                        power: 0
                        rx_chain: 4
                        tx_chain: 1
                      scanning_enabled: true
                    radio_stat:
                      band_24:
                        bandwidth: 20
                        channel: 6
                        mac: 5c5b350004a0
                        num_clients: 6
                        power: 19
                        rx_bytes: 8504737800
                        rx_pkts: 57731964
                        tx_bytes: 211166512114
                        tx_pkts: 812058566
                      band_5:
                        bandwidth: 80
                        channel: 44
                        mac: 5c5b350004b0
                        num_clients: 4
                        power: 15
                        rx_bytes: 10366616
                        rx_pkts: 38603
                        tx_bytes: 50877568
                        tx_pkts: 145496
                    rx_bps: 60003
                    rx_bytes: 8515104416
                    rx_pkts: 57770567
                    serial: FXLH2015170017
                    status: connected
                    tx_bps: 634301
                    tx_bytes: 211217389682
                    tx_pkts: 812204062
                    type: ap
                    uptime: 13500
                    usb_stat:
                      channel: 3
                      connected: true
                      last_activity: 1586873254
                      type: imagotag
                      up: true
                    version: 1.0.0
                    x: 53.5
                    y: 173.1
                gateway_stats:
                  value:
                    cluster_stat:
                      node0:
                        status: ""
                      node1:
                        stats: ""
                    cpu2_stat: ""
                    cpu_stat:
                      idle: 28
                      interrupt: 8
                      load_avg:
                        - 0.9700000286102295
                        - 1.0499999523162842
                        - 1.0199999809265137
                      system: 41
                      user: 23
                    hostname: sj1
                    ip: 10.2.11.137
                    ip_stat:
                      dns:
                        - 8.8.8.8
                        - 4.4.4.4
                      dns_suffix:
                        - .mist.local
                        - .mist.com
                      gateway: 10.2.1.1
                      gateway6: 2607:f8b0:4005:808::1
                      ip: 10.2.11.137
                      ip6: 2607:f8b0:4005:808::2004
                      ips:
                        vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                        vlan193: 10.73.1.31/16
                        vlan3157: 10.72.11.14/24
                      netmask: 255.255.192.0
                      netmask6: /32
                    last_seen: 1553203563
                    mac: dc38e1dbf3cd
                    memory_stat:
                      usage: 35
                    model: SRX320
                    module2_stat: ""
                    module_stat:
                      - fans:
                          - name: Fan 0
                            status: absent
                          - airflow: out
                            name: Fan 1
                            status: ok
                        model: EX4300-48P
                        poe:
                          max_power: 250
                          power_draw: 120.3
                        psus:
                          - name: Power Supply 0
                            status: ok
                          - name: Power Supply 1
                            status: failed
                        serial: PX8716230021
                        temperatures:
                          - celsius: 45
                            name: CPU
                            status: ok
                        vc_links:
                          - neighbor_module_idx: 1
                            neighbor_port_id: vcp-255/1/0
                            port_id: vcp-255/1/0
                        vc_role: master
                    name: sj1
                    serial: TC3714190003
                    spu2_stat: ""
                    spu_stat:
                      cpu: 15
                      memory: 32
                      sessions:
                        current: 41
                        max: 65535
                        pending: 12
                        valid: 15
                    status: connected
                    type: gateway
                    uptime: 13500
                    version: 18.4R1.8
                swtich_stats:
                  value:
                    cpu_stat:
                      idle: 28
                      interrupt: 8
                      load_avg:
                        - 0.9700000286102295
                        - 1.0499999523162842
                        - 1.0199999809265137
                      system: 41
                      user: 23
                    hostname: sj-sw1
                    ip: 10.2.11.137
                    ip_stat:
                      dns:
                        - 8.8.8.8
                        - 4.4.4.4
                      dns_suffix:
                        - .mist.local
                        - .mist.com
                      gateway: 10.2.1.1
                      gateway6: 2607:f8b0:4005:808::1
                      ip: 10.2.11.137
                      ip6: 2607:f8b0:4005:808::2004
                      ips:
                        vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                        vlan193: 10.73.1.31/16
                        vlan3157: 10.72.11.14/24
                      netmask: 255.255.192.0
                      netmask6: /32
                    last_seen: 1553203563
                    mac: dc38e1dbf3cd
                    memory_stat:
                      usage: 35
                    model: EX4600
                    module_stat:
                      - fans:
                          - name: Fan 0
                            status: absent
                          - airflow: out
                            name: Fan 1
                            status: ok
                        model: EX4300-48P
                        poe:
                          max_power: 250
                          power_draw: 120.3
                        psus:
                          - name: Power Supply 0
                            status: ok
                          - name: Power Supply 1
                            status: failed
                        serial: PX8716230021
                        temperatures:
                          - celsius: 45
                            name: CPU
                            status: ok
                        vc_links:
                          - neighbor_module_idx: 1
                            neighbor_port_id: vcp-255/1/0
                            port_id: vcp-255/1/0
                        vc_role: master
                    name: xg50b
                    serial: TC3714190003
                    status: connected
                    type: switch
                    uptime: 13500
                    version: 18.4R1.8
              schema:
                oneOf:
                  - $ref: "#/components/schemas/stats_device_ap"
                  - $ref: "#/components/schemas/stats_device_switch"
                  - $ref: "#/components/schemas/stats_device_gateway"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDeviceStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
  "/api/v1/sites/{site_id}/stats/devices/{device_id}/clients":
    get:
      description: Get wireless client stat by Device
      operationId: getSiteAllClientsStatsByDevice
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - _ttl: 0
                      accuracy: 0
                      airespace_ifname: string
                      airwatch:
                        authorized: true
                      ap_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      ap_mac: string
                      band: "24"
                      channel: 0
                      dual_band: true
                      family: string
                      guest:
                        authorized: true
                        authorized_expiring_time: 0
                        authorized_time: 0
                        company: string
                        email: string
                        field1: string
                        name: string
                      hostname: string
                      id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      idle_time: 0
                      ip: 192.168.1.2
                      is_guest: true
                      key_mgmt: string
                      last_seen: 0
                      mac: string
                      manufacture: string
                      map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      model: string
                      name: string
                      num_locating_aps: 0
                      os: string
                      power_saving: true
                      proto: ac
                      psk_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                      rssi: 0
                      rx_bps: 0
                      rx_bytes: 0
                      rx_packets: 0
                      rx_rate: 0
                      rx_retries: 0
                      snr: 0
                      ssid: string
                      tx_bps: 0
                      tx_bytes: 0
                      tx_packets: 0
                      tx_rate: 0
                      tx_retries: 0
                      type: string
                      uptime: 0
                      username: string
                      vlan_id: 1
                      wlan_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      x: 0
                      y: 0
              schema:
                items:
                  $ref: "#/components/schemas/stats_client"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAllClientsStatsByDevice
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
  "/api/v1/sites/{site_id}/stats/discovered_assets":
    get:
      description: Get List of Site Discovered BLE Assets that doesn’t match any of the Asset / Assetfilters
      operationId: listSiteDiscoveredAssets
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/asset"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteDiscoveredAssets
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/discovered_switch_metrics/search":
    get:
      description: Search Discovered Switch Metrics
      operationId: searchSiteDiscoveredSwitchesMetrics
      parameters:
        - description: metric scope, optional
          in: query
          name: scope
          schema:
            default: site
            enum:
              - site
              - switch
            type: string
        - description: metric type, inactive_wired_vlans/switch_ap_affinity/poe_compliance/version_compliance, optional
          in: query
          name: type
          schema:
            enum:
              - inactive_wired_vlans
              - switch_ap_affinity
              - poe_compliance
              - version_compliance
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1675193686.0191767
                    limit: 1
                    next: /api/v1/sites/f5fcbee5-fbca-45b3-8bf1-1619ede87879/stats/discovered_switch_metrics/search?end=1675193686.0191767&limit=1&search_after=%5B1675193400000%5D&start=1675107286.0191767
                    results:
                      - details: {}
                        org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
                        scope: site
                        score: 100
                        site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
                        timestamp: 1675193400
                        type: inactive_wired_vlans
                    start: 1675107286.0191767
                    total: 3
              schema:
                properties:
                  end:
                    type: number
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      properties:
                        details:
                          type: object
                        org_id:
                          type: string
                        scope:
                          type: string
                        score:
                          type: integer
                        site_id:
                          type: string
                        timestamp:
                          type: integer
                        type:
                          type: string
                      type: object
                    type: array
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - results
                  - start
                  - end
                  - limit
                  - total
                type: object
                x-examples:
                  Example 1:
                    end: 1675193686.0191767
                    limit: 1
                    next: /api/v1/sites/f5fcbee5-fbca-45b3-8bf1-1619ede87879/stats/discovered_switch_metrics/search?end=1675193686.0191767&limit=1&search_after=%5B1675193400000%5D&start=1675107286.0191767
                    results:
                      - details: {}
                        org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
                        scope: site
                        score: 100
                        site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
                        timestamp: 1675193400
                        type: inactive_wired_vlans
                    start: 1675107286.0191767
                    total: 3
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDiscoveredSwitchesMetrics
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/discovered_switches/count":
    get:
      description: Count Discovered Switches
      operationId: countSiteDiscoveredSwitches
      parameters:
        - in: query
          name: distinct
          schema:
            default: system_name
            enum:
              - system_name
              - version
              - model
              - mgmt_addr
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: system_name
                    end: 1604496202.3555834
                    limit: 1000
                    percentage: 100
                    results:
                      - count: 1
                        system_name: test-ex
                      - count: 1
                        system_name: sw-jn-01
                    start: 1604409802.3555677
                    total: 2
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: number
                  limit:
                    type: integer
                  percentage:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        system_name:
                          type: string
                      required:
                        - system_name
                        - count
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - results
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - percentage
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteDiscoveredSwitches
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/discovered_switches/metrics":
    get:
      description: Discovered switches related metrics, lists related switch system names & details if not compliant
      operationId: getSiteDiscoveredSwitchesMetrics
      parameters:
        - description: "configurable # ap per switch threshold, default 12"
          in: query
          name: threshold
          schema:
            type: string
        - description: system name for switch level metrics, optional
          in: query
          name: system_name
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    inactive_wired_vlans:
                      details: {}
                      score: 100
                    poe_compliance:
                      details:
                        total_aps: 63
                        total_power: 981500
                      score: 100
                    switch_ap_affinity:
                      details:
                        system_name:
                          - mist-lab-ex2300c
                          - switch1
                        threshold: 12
                      score: 33.3333
                    version_compliance:
                      details:
                        major_versions:
                          - major_count: 2
                            model: EX2300-C-12P
                            system_names:
                              - switch1
                              - mist-lab-ex2300c
                          - major_count: 1
                            model: EX4300-48P
                            system_names: []
                        total_switch_count: 5
                      score: 75
              schema:
                properties:
                  inactive_wired_vlans:
                    properties:
                      details:
                        type: object
                      score:
                        type: number
                    required:
                      - score
                      - details
                    type: object
                  poe_compliance:
                    properties:
                      details:
                        properties:
                          total_aps:
                            type: integer
                          total_power:
                            type: number
                        required:
                          - total_power
                          - total_aps
                        type: object
                      score:
                        type: number
                    required:
                      - score
                      - details
                    type: object
                  switch_ap_affinity:
                    properties:
                      details:
                        properties:
                          system_name:
                            items:
                              type: string
                            type: array
                          threshold:
                            type: number
                        required:
                          - threshold
                          - system_name
                        type: object
                      score:
                        type: number
                    required:
                      - score
                      - details
                    type: object
                  version_compliance:
                    properties:
                      details:
                        properties:
                          major_versions:
                            items:
                              properties:
                                major_count:
                                  type: number
                                model:
                                  type: string
                                system_names:
                                  items:
                                    type: string
                                  type: array
                              required:
                                - model
                                - major_count
                              type: object
                            minItems: 1
                            type: array
                            uniqueItems: true
                          total_switch_count:
                            type: integer
                        required:
                          - major_versions
                          - total_switch_count
                        type: object
                      score:
                        type: number
                    required:
                      - score
                      - details
                    type: object
                required:
                  - version_compliance
                  - switch_ap_affinity
                  - inactive_wired_vlans
                  - poe_compliance
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDiscoveredSwitchesMetrics
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/discovered_switches/search":
    get:
      description: Search Discovered Switches
      operationId: searchSiteDiscoveredSwitches
      parameters:
        - in: query
          name: adopted
          schema:
            type: boolean
        - in: query
          name: system_name
          schema:
            type: string
        - in: query
          name: hostname
          schema:
            type: string
        - in: query
          name: vendor
          schema:
            type: string
        - in: query
          name: model
          schema:
            type: string
        - in: query
          name: version
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1604496474.8978634
                    limit: 1000
                    results:
                      - aps:
                          - hostname: ap41nearlab
                            inactive_wired_vlans: []
                            mac: 5c5b352e2001
                            poe_status: true
                            when: 2019-06-13T19:53:16.870+0000
                        mgmt_addr: 10.1.1.1
                        model: EX2300-C-12P
                        org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
                        site_id: 67970e46-4e12-11e6-9188-0242ac110007
                        system_desc: "Juniper Networks, Inc. ex2300-c-12p Ethernet Switch, kernel JUNOS 18.2R2.6, Build date: 2018-12-07 13:19:04 UTC Copyright (c) 1996-2018 Juniper Networks, Inc."
                        system_name: mist-lab-ex2300c
                        timestamp: 1560457177.037
                        vendor: Juniper Networks
                        version: 18.2R2.6
                    start: 1604410074.8978484
                    total: 1
              schema:
                properties:
                  end:
                    type: number
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      properties:
                        adopted:
                          type: boolean
                        aps:
                          items:
                            properties:
                              hostname:
                                type: string
                              mac:
                                type: string
                              poe_status:
                                type: boolean
                              port:
                                type: string
                              port_id:
                                type: string
                              power_draw:
                                type: number
                              when:
                                type: string
                            type: object
                          type: array
                          uniqueItems: true
                        chassis_id:
                          items:
                            type: string
                          type: array
                        for_site:
                          readOnly: true
                          type: boolean
                        model:
                          type: string
                        org_id:
                          format: uuid
                          type: string
                        site_id:
                          format: uuid
                          type: string
                        system_desc:
                          type: string
                        system_name:
                          type: string
                        timestamp:
                          type: number
                        vendor:
                          type: string
                        version:
                          type: string
                      required:
                        - model
                        - org_id
                        - site_id
                        - system_desc
                        - system_name
                        - timestamp
                        - vendor
                        - version
                      type: object
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - end
                  - limit
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteDiscoveredSwitches
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/filtered_assets":
    get:
      description: Get a list of BLE beacons that matches Asset or AssetFilter
      operationId: getSiteAssetsOfInterest
      parameters:
        - $ref: "#/components/parameters/duration"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
      responses:
        "200":
          $ref: "#/components/responses/AssetOfInterestArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAssetsOfInterest
      tags:
        - Sites Assets
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/gateways/metrics":
    get:
      description: Get Site Gateway Metrics
      operationId: getSiteGatewayMetrics
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    config_success: 99.9
                    version_compliance:
                      major_version:
                        SRX320:
                          major_count: 0
                          major_version: 19.4R2-S1.2
                      score: 99.9
                      type: gateway
              schema:
                properties:
                  config_success:
                    description: config success score
                    example: 99.9
                    type: number
                  version_compliance:
                    description: version compliance score, major version for gateway, type
                    properties:
                      major_version:
                        additionalProperties:
                          properties:
                            major_count:
                              type: integer
                            major_version:
                              example: 19.4R2-S1.2
                              type: string
                          type: object
                        type: object
                      score:
                        example: 99.9
                        type: number
                      type:
                        example: gateway
                        type: string
                    type: object
                type: object
                x-examples:
                  example-1:
                    config_success: 100
                    version_compliance:
                      major_version: 19.4R2-S1.2
                      score: 100
                      type: gateway
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteGatewayMetrics
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/maps/{map_id}/clients":
    get:
      description: Get Site Clients Stats By Map
      operationId: getSiteClientsStatsByMap
      parameters:
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - _ttl: 0
                      accuracy: 0
                      airespace_ifname: string
                      airwatch:
                        authorized: true
                      ap_id: 325b588d-147b-4fa4-bb40-83383f83c77e
                      ap_mac: string
                      band: "24"
                      channel: 0
                      dual_band: true
                      family: string
                      guest:
                        authorized: false
                        authorized_expiring_time: 0
                        authorized_time: 0
                        company: string
                        email: string
                        field1: string
                        name: string
                      hostname: string
                      idle_time: 0
                      ip: 192.168.0.1
                      ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                      is_guest: false
                      key_mgmt: string
                      last_seen: 0
                      mac: string
                      manufacture: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      model: string
                      num_locating_aps: 0
                      os: string
                      power_saving: true
                      proto: a
                      psk_id: 4cb94c10-4e99-46b0-8261-4c71d0b2cb9d
                      rssi: 0
                      rx_bps: 0
                      rx_bytes: 0
                      rx_packets: 0
                      rx_rate: 0
                      rx_retries: 0
                      snr: 0
                      ssid: string
                      tx_bps: 0
                      tx_bytes: 0
                      tx_packets: 0
                      tx_rate: 0
                      tx_retries: 0
                      type: string
                      uptime: 0
                      username: string
                      vlan_id: 0
                      wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
                      x: 0
                      y: 0
              schema:
                items:
                  $ref: "#/components/schemas/stats_client"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteClientsStatsByMap
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/stats/maps/{map_id}/discovered_assets":
    get:
      description: Get a list of BLE beacons that we discovered (whether they’re defined as assets or not)
      operationId: getSiteDiscoveredAssetByMap
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - device_name: "[TV] UN65JU670D"
                      duration: 120
                      eddystone_uid_instance: 5c5b35000001
                      eddystone_uid_namespace: 2818e3868dec25629ede
                      eddystone_url_url: https://www.abc.com
                      ibeacon_major: 13
                      ibeacon_minor: 138
                      ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                      last_seen: 1428939600
                      mac: 6fa474be7ae5
                      manufacture: Apple
                      mfg_company_id: 935
                      mfg_data: 648520a1020000
                      x: 60
                      y: 80
              schema:
                items:
                  $ref: "#/components/schemas/stats_asset"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDiscoveredAssetByMap
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/stats/maps/{map_id}/sdkclients":
    get:
      description: Get SdkClient Stats By Map
      operationId: getSiteSdkStatsByMap
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - id: de87bf9d-183f-e383-cc68-6ba43947d403
                      last_seen: 1428939600
                      map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                      name: John's iPhone
                      network_connection:
                        mac: c3-b6-e5-af-41-15
                        rssi: -75
                        signal_level: 3
                        type: WiFi
                      uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                      x: 60
                      y: 80
              schema:
                items:
                  $ref: "#/components/schemas/stats_sdkclient"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSdkStatsByMap
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/stats/maps/{map_id}/unconnected_clients":
    get:
      description: Get List of Site Unconnected Client Location
      operationId: listSiteUnconnectedClientStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - ap_mac: 5c5b350e0410
                      last_seen: 1428939600
                      mac: 5684dae9ac8b
                      manufacture: Apple
                      map_id: ea77be98-ab51-4ff8-a863-ac3c8e1b1c3a
                      rssi: -75
                      x: 60
                      y: 80
              schema:
                items:
                  $ref: "#/components/schemas/stats_unconnected_clients"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteUnconnectedClientStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/map_id"
  "/api/v1/sites/{site_id}/stats/mxedges":
    get:
      description: Get List of Site MxEdges Stats
      operationId: listSiteMxEdgesStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - cpu_stat:
                        cpus:
                          property1:
                            idle: 0
                            interrupt: 0
                            system: 0
                            usage: 0
                            user: 0
                          property2:
                            idle: 0
                            interrupt: 0
                            system: 0
                            usage: 0
                            user: 0
                        idle: 0
                        interrupt: 0
                        system: 0
                        usage: 0
                        user: 0
                      created_time: 0
                      for_site: true
                      id: 493f6eca-6276-4993-bfeb-83cbbbba6f08
                      ip_stat:
                        ip: string
                        ips:
                          property1: string
                          property2: string
                      lag_stat: {}
                      last_seen: 0
                      mac: string
                      memory_stat:
                        active: 0
                        available: 0
                        buffers: 0
                        cached: 0
                        free: 0
                        inactive: 0
                        swap_cached: 0
                        swap_free: 0
                        swap_total: 0
                        total: 0
                        usage: 0
                      model: string
                      modified_time: 0
                      mxagent_registered: true
                      mxcluster_id: de779d5f-583c-4a9c-b212-6105ad1a78b6
                      name: string
                      num_tunnels: 0
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      port_stat:
                        property1:
                          full_duplex: true
                          mac: string
                          rx_bytes: 0
                          rx_errors: 0
                          rx_pkts: 0
                          speed: 0
                          state: string
                          tx_bytes: 0
                          tx_errors: 0
                          tx_pkts: 0
                          up: true
                        property2:
                          full_duplex: true
                          mac: string
                          rx_bytes: 0
                          rx_errors: 0
                          rx_pkts: 0
                          speed: 0
                          state: string
                          tx_bytes: 0
                          tx_errors: 0
                          tx_pkts: 0
                          up: true
                      sensor_stat: {}
                      service_stat:
                        mxagent:
                          ext_ip: string
                          last_seen: 0
                          package_state: string
                          package_version: string
                          running_state: string
                          uptime: 0
                        tunterm:
                          ext_ip: string
                          last_seen: 0
                          package_state: string
                          package_version: string
                          running_state: string
                          uptime: 0
                      services:
                        - {}
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      status: string
                      tunterm_id: 811edbcf-b497-4977-b6d1-40d54cf871a5
                      tunterm_ip_config:
                        gateway: string
                        ip: string
                        netmask: string
                      tunterm_port_config:
                        downstream_ports:
                          - {}
                        separate_upstream_downstream: true
                        upstream_ports:
                          - {}
                      tunterm_registered: true
                      tunterm_stat:
                        monitoring_failed: true
                      uptime: 0
                      virtualization_type: string
              schema:
                items:
                  $ref: "#/components/schemas/stats_mxedge"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteMxEdgesStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/mxedges/{mxedge_id}":
    get:
      description: Get One Site MxEdge Stats
      operationId: getSiteMxEdgeStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    cpu_stat:
                      cpus:
                        property1:
                          idle: 0
                          interrupt: 0
                          system: 0
                          usage: 0
                          user: 0
                        property2:
                          idle: 0
                          interrupt: 0
                          system: 0
                          usage: 0
                          user: 0
                      idle: 0
                      interrupt: 0
                      system: 0
                      usage: 0
                      user: 0
                    created_time: 0
                    for_site: true
                    id: 492f6eca-6276-4993-bfeb-93cbbbba6f08
                    ip_stat:
                      ip: string
                      ips:
                        property1: string
                        property2: string
                    lag_stat: {}
                    last_seen: 0
                    mac: string
                    memory_stat:
                      active: 0
                      available: 0
                      buffers: 0
                      cached: 0
                      free: 0
                      inactive: 0
                      swap_cached: 0
                      swap_free: 0
                      swap_total: 0
                      total: 0
                      usage: 0
                    model: string
                    modified_time: 0
                    mxagent_registered: true
                    mxcluster_id: de779d5f-583c-4a9c-b212-6105ad1a78b6
                    name: string
                    num_tunnels: 0
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    port_stat:
                      property1:
                        full_duplex: true
                        mac: string
                        rx_bytes: 0
                        rx_errors: 0
                        rx_pkts: 0
                        speed: 0
                        state: string
                        tx_bytes: 0
                        tx_errors: 0
                        tx_pkts: 0
                        up: true
                      property2:
                        full_duplex: true
                        mac: string
                        rx_bytes: 0
                        rx_errors: 0
                        rx_pkts: 0
                        speed: 0
                        state: string
                        tx_bytes: 0
                        tx_errors: 0
                        tx_pkts: 0
                        up: true
                    sensor_stat: {}
                    service_stat:
                      mxagent:
                        ext_ip: string
                        last_seen: 0
                        package_state: string
                        package_version: string
                        running_state: string
                        uptime: 0
                      tunterm:
                        ext_ip: string
                        last_seen: 0
                        package_state: string
                        package_version: string
                        running_state: string
                        uptime: 0
                    services:
                      - {}
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    status: string
                    tunterm_id: 811edbcf-b497-4977-b6d1-40d54cf871a5
                    tunterm_ip_config:
                      gateway: string
                      ip: string
                      netmask: string
                    tunterm_port_config:
                      downstream_ports:
                        - {}
                      separate_upstream_downstream: true
                      upstream_ports:
                        - {}
                    tunterm_registered: true
                    tunterm_stat:
                      monitoring_failed: true
                    uptime: 0
                    virtualization_type: string
              schema:
                $ref: "#/components/schemas/stats_mxedge"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteMxEdgeStats
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/mxedge_id"
  "/api/v1/sites/{site_id}/stats/ports/count":
    get:
      description: Count by Distinct Attributes of Switch/Gateway Ports
      operationId: countSiteByDisctinctAttributesOPorts
      parameters:
        - description: port_id, port_mac, full_duplex, mac, neighbor_macneighbor_port_desc, neighbor_system_name, poe_disabled, poe_mode, poe_on, speed, up
          in: query
          name: distinct
          schema:
            default: mac
            enum:
              - port_id
              - port_mac
              - full_duplex
              - mac
              - neighbor_mac
              - neighbor_port_desc
              - neighbor_system_name
              - poe_disabled
              - poe_mode
              - poe_on
              - speed
              - up
            type: string
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: if `up`==`true` && has Authenticator role
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: mac
                    end: 1513177200
                    limit: 100
                    results:
                      - count: 217
                        mac: "112233445566"
                      - count: 35
                        mac: "001122334455"
                    start: 1511967600
                    total: 20
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: integer
                  limit:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        mac:
                          type: string
                      required:
                        - count
                        - mac
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteByDisctinctAttributesOfSwitchPorts
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/ports/search":
    get:
      description: Search Switch / Gateway Ports
      operationId: searchSiteSwOrGwPorts
      parameters:
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Output errors
          in: query
          name: tx_errors
          schema:
            type: integer
        - description: Input errors
          in: query
          name: rx_errors
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: Limit on number of dynamically learned macs
          in: query
          name: mac_limit
          schema:
            type: integer
        - description: Number of mac addresses in the forwarding table
          in: query
          name: mac_count
          schema:
            type: integer
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: Optic Slot Partnumber, Check for null/empty
          in: query
          name: xcvr_part_number
          schema:
            type: string
        - description: if `up`==`true` && has Authenticator role
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1513177200
                    limit: 10
                    results:
                      - mac: 5c4527a96580
                        neighbor_mac: 64d814353400
                        neighbor_port_desc: GigabitEthernet1/0/21
                        neighbor_system_name: CORP-D-SW-2
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_disabled: true
                        port_id: me0
                        port_mac: 5c4527a96580
                        rx_bytes: 4563443626
                        rx_pkts: 30360265
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bytes: 11299516780
                        tx_pkts: 14610886
                        up: true
                      - full_duplex: true
                        mac: 0c8126c6ff6c
                        neighbor_mac: 5c5b350eb361
                        neighbor_port_desc: ETH0
                        neighbor_system_name: kevinsap
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_mode: 802.3at
                        poe_on: true
                        port_id: ge-0/0/0
                        port_mac: 0c8126c6ff6f
                        power_draw: 5.4
                        rx_bps: 1176
                        rx_bytes: 2628451
                        rx_pkts: 11829
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bps: 14264
                        tx_bytes: 96810192
                        tx_pkts: 492176
                        up: true
                    start: 1511967600
                    total: 100
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  results:
                    items:
                      $ref: "#/components/schemas/stats_switch_port"
                    type: array
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - start
                  - end
                  - limit
                  - total
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteSwOrGwPorts
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/sdkclients/{sdkclient_id}":
    get:
      description: Get Detail Stats of a SdkClient
      operationId: getSiteSdkStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    id: de87bf9d-183f-e383-cc68-6ba43947d403
                    last_seen: 1428939600
                    map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
                    name: John's iPhone
                    network_connection:
                      mac: c3-b6-e5-af-41-15
                      rssi: -75
                      signal_level: 3
                      type: WiFi
                    uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                    vbeacons:
                      - id: d379d29d-24b4-96c5-5dd4-6f2a2dc5aaeb
                        since: 1428939300
                    x: 60
                    y: 80
                    zones:
                      - id: 8ac84899-32db-6327-334c-9b6d58544cfe
                        since: 1428939600
              schema:
                $ref: "#/components/schemas/stats_sdkclient_details"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSdkStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/sdkclient_id"
  "/api/v1/sites/{site_id}/stats/switch_ports/count":
    get:
      description: Count by Distinct Attributes of Switch/Gateway Ports
      operationId: countSiteByDisctinctAttributesOfSwitchPorts
      parameters:
        - description: port_id, port_mac, full_duplex, mac, neighbor_macneighbor_port_desc, neighbor_system_name, poe_disabled, poe_mode, poe_on, speed, up
          in: query
          name: distinct
          schema:
            default: mac
            enum:
              - port_id
              - port_mac
              - full_duplex
              - mac
              - neighbor_mac
              - neighbor_port_desc
              - neighbor_system_name
              - poe_disabled
              - poe_mode
              - poe_on
              - speed
              - up
            type: string
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: if `up`==`true`
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    distinct: mac
                    end: 1513177200
                    limit: 100
                    results:
                      - count: 217
                        mac: "112233445566"
                      - count: 35
                        mac: "001122334455"
                    start: 1511967600
                    total: 20
              schema:
                properties:
                  distinct:
                    type: string
                  end:
                    type: integer
                  limit:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        mac:
                          type: string
                      required:
                        - count
                        - mac
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - start
                  - end
                  - limit
                  - distinct
                  - total
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteByDisctinctAttributesOfSwitchPorts
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/switch_ports/search":
    get:
      description: Search Switch / Gateway Ports
      operationId: searchSiteSwitchPorts
      parameters:
        - description: indicates full or half duplex
          in: query
          name: full_duplex
          schema:
            type: boolean
        - description: device identifier
          in: query
          name: mac
          schema:
            type: string
        - description: Chassis identifier of the chassis type listed
          in: query
          name: neighbor_mac
          schema:
            type: string
        - description: Description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          in: query
          name: neighbor_port_desc
          schema:
            type: string
        - description: Name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          in: query
          name: neighbor_system_name
          schema:
            type: string
        - description: is the POE configured not be disabled.
          in: query
          name: poe_disabled
          schema:
            type: boolean
        - description: poe mode depending on class E.g. “802.3at”
          in: query
          name: poe_mode
          schema:
            type: string
        - description: is the device attached to POE
          in: query
          name: poe_on
          schema:
            type: boolean
        - description: interface name
          in: query
          name: port_id
          schema:
            type: string
        - description: interface mac address
          in: query
          name: port_mac
          schema:
            type: string
        - description: Amount of power being used by the interface at the time the command is executed. Unit in watts.
          in: query
          name: power_draw
          schema:
            type: number
        - description: Output packets
          in: query
          name: tx_pkts
          schema:
            type: integer
        - description: Input packets
          in: query
          name: rx_pkts
          schema:
            type: integer
        - description: Input bytes
          in: query
          name: rx_bytes
          schema:
            type: integer
        - description: Output rate
          in: query
          name: tx_bps
          schema:
            type: integer
        - description: Input rate
          in: query
          name: rx_bps
          schema:
            type: integer
        - description: Multicast output packets
          in: query
          name: tx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast output packets
          in: query
          name: tx_bcast_pkts
          schema:
            type: integer
        - description: Multicast input packets
          in: query
          name: rx_mcast_pkts
          schema:
            type: integer
        - description: Broadcast input packets
          in: query
          name: rx_bcast_pkts
          schema:
            type: integer
        - description: port speed
          in: query
          name: speed
          schema:
            type: integer
        - description: if `up`==`true`
          in: query
          name: stp_state
          schema:
            enum:
              - forwarding
              - blocking
              - learning
              - listening
              - disabled
            type: string
        - description: if `up`==`true`
          in: query
          name: stp_role
          schema:
            enum:
              - designated
              - backup
              - alternate
              - root
              - root-prevented
            type: string
        - description: if `up`==`true` && has Authenticator role
          in: query
          name: auth_state
          schema:
            enum:
              - init
              - authenticated
              - authenticating
              - held
            type: string
        - description: indicates if interface is up
          in: query
          name: up
          schema:
            type: boolean
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1513177200
                    limit: 10
                    results:
                      - mac: 5c4527a96580
                        neighbor_mac: 64d814353400
                        neighbor_port_desc: GigabitEthernet1/0/21
                        neighbor_system_name: CORP-D-SW-2
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_disabled: true
                        port_id: me0
                        port_mac: 5c4527a96580
                        rx_bytes: 4563443626
                        rx_pkts: 30360265
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bytes: 11299516780
                        tx_pkts: 14610886
                        up: true
                      - full_duplex: true
                        mac: 0c8126c6ff6c
                        neighbor_mac: 5c5b350eb361
                        neighbor_port_desc: ETH0
                        neighbor_system_name: kevinsap
                        org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                        poe_mode: 802.3at
                        poe_on: true
                        port_id: ge-0/0/0
                        port_mac: 0c8126c6ff6f
                        power_draw: 5.4
                        rx_bps: 1176
                        rx_bytes: 2628451
                        rx_pkts: 11829
                        site_id: c1698122-c14c-11e5-8e81-1258369c38a9
                        speed: 1000
                        tx_bps: 14264
                        tx_bytes: 96810192
                        tx_pkts: 492176
                        up: true
                    start: 1511967600
                    total: 100
              schema:
                properties:
                  end:
                    type: integer
                  limit:
                    type: integer
                  results:
                    items:
                      $ref: "#/components/schemas/stats_switch_port"
                    type: array
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - start
                  - end
                  - limit
                  - total
                  - results
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteSwitchPorts
      tags:
        - Sites Devices Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/switch_wired_clients/{device_id}/search":
    get:
      description: This API is used to get recent wired clients mac and parent interface names for a switch device
      operationId: getSiteWiredClientAndParentInterface
      parameters:
        - in: query
          name: port_id
          schema:
            example: eth-0/0/0
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    - device_mac: dc38e1dbf3cd
                      hostname: test-sw1
                      mac: b0c4e7001544
                      org_id: a16fdfc0-8540-47ab-be59-9dd2d00e7c84
                      port_ids:
                        - eth-0/0/0
                        - ge-0/0/1
                      site_id: a16fdfc0-8540-47ab-be59-9dd2d00e7c84
              schema:
                items:
                  properties:
                    _ttl:
                      description: TTL of the validity of the stat
                      type: integer
                    device_mac:
                      description: switch mac
                      type: string
                    hostname:
                      description: switch hostname
                      type: string
                    mac:
                      type: string
                    org_id:
                      type: string
                    port_ids:
                      description: ports on switch where the wired client is connected
                      items:
                        type: string
                      type: array
                    site_id:
                      type: string
                  type: object
                type: array
                x-examples:
                  Example 1:
                    - device_mac: dc38e1dbf3cd
                      hostname: test-sw1
                      mac: b0c4e7001544
                      org_id: a16fdfc0-8540-47ab-be59-9dd2d00e7c84
                      port_ids:
                        - eth-0/0/0
                        - ge-0/0/1
                      site_id: a16fdfc0-8540-47ab-be59-9dd2d00e7c84
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWiredClientAndParentInterface
      tags:
        - Sites Wired Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/device_id"
  "/api/v1/sites/{site_id}/stats/switches/metrics":
    get:
      description: |
        Get version compliance metrics for managed or monitored switches
      operationId: getSiteAdoptedSwitchesComplianceMetrics
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    version_compliance:
                      details:
                        major_versions:
                          - major_count: 1
                            major_version: 21.4R3.5
                            model: EX2300-C-12P
                            system_names: []
                          - major_count: 1
                            major_version: 6.0.4-11
                            model: SSR120
                            system_names: []
                      score: 100
                      total_switch_count: 2
              schema:
                properties:
                  version_compliance:
                    properties:
                      details:
                        properties:
                          major_versions:
                            items:
                              properties:
                                major_count:
                                  type: integer
                                major_version:
                                  type: string
                                model:
                                  type: string
                                system_names:
                                  items:
                                    properties: {}
                                    type: object
                                  type: array
                              type: object
                            type: array
                        type: object
                      score:
                        type: integer
                      total_switch_count:
                        type: integer
                    type: object
                type: object
                x-examples:
                  Example 1:
                    version_compliance:
                      details:
                        major_versions:
                          - major_count: 1
                            major_version: 21.4R3.5
                            model: EX2300-C-12P
                            system_names: []
                          - major_count: 1
                            major_version: 6.0.4-11
                            model: SSR120
                            system_names: []
                      score: 100
                      total_switch_count: 2
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteAdoptedSwitchesComplianceMetrics
      tags:
        - Sites Devices Switches
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/wxrules":
    get:
      description: Get Wxlan Rule usage
      operationId: getSiteWxRulesUsage
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - action: allow
                      client_mac:
                        - 3bbbf819bb6f
                        - bd96cbc4910f
                      dst_allow_wxtags:
                        - fff34466-eec0-3756-6765-381c728a6037
                        - eee2c7b0-d1d0-5a30-f349-e35fa43dc3b3
                      dst_deny_wxtags:
                        - aaa34466-eec0-3756-6765-381c728a6037
                        - bbb2c7b0-d1d0-5a30-f349-e35fa43dc3b3
                      dst_wxtags:
                        - d4134466-eec0-3756-6765-381c728a6037
                        - 1a42c7b0-d1d0-5a30-f349-e35fa43dc3b3
                      name: Guest
                      order: 1
                      src_wxtags:
                        - 8bfc2490-d726-3587-038d-cb2e71bd2330
                        - 3aa8e73f-9f46-d827-8d6a-567bb7e67fc9
                      usage:
                        00000000-0000-0000-0000-000000000000:
                          num_flows: 30
                        1a42c7b0-d1d0-5a30-f349-e35fa43dc3b3:
                          num_flows: 60
                        d4134466-eec0-3756-6765-381c728a6037:
                          num_flows: 60
              schema:
                items:
                  $ref: "#/components/schemas/stats_wxrule"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWxRulesUsage
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/zones":
    get:
      description: Get List of Site Zones Stats
      operationId: listSiteZonesStats
      parameters:
        - example: 00000000-0000-0000-0000-000000000000
          in: query
          name: map_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                with map_id query param:
                  value:
                    - assets_waits:
                        avg: 0
                        max: 0
                        min: 0
                        p95: 0
                      clients_waits:
                        avg: 1200
                        max: 3610
                        min: 600
                        p95: 2800
                      created_time: 1616625211
                      id: 123470c7-5d9d-424a-8475-8b344c621234
                      map_id: 123449d4-d12f-4feb-b40f-5be0e2ae1234
                      modified_time: 1616625211
                      name: Zone A
                      num_assets: 0
                      num_clients: 80
                      num_sdkclients: 10
                      occupancy_limit: 4
                      org_id: 1234c1a0-6ef6-11e6-8bbf-02e208b21234
                      sdkclients_waits:
                        avg: 1200
                        max: 3610
                        min: 600
                        p95: 2800
                      site_id: 123448e6-6ef6-11e6-8bbf-02e208b21234
                      vertices:
                        - x: 732
                          y: 1821
                        - x: 732.5
                          y: 1731
                        - x: 837.5
                          y: 1731.5
                        - x: 839
                          y: 1821
                      vertices_m:
                        - x: 24.1983341951072
                          y: 60.198314985369144
                        - x: 24.21486311190714
                          y: 57.22310996138056
                        - x: 27.685935639893827
                          y: 57.23963887818049
                        - x: 27.73552239029364
                          y: 60.198314985369144
                without map_id query param:
                  value:
                    - created_time: 1616625211
                      id: 123470c7-5d9d-424a-8475-8b344c621234
                      map_id: 123449d4-d12f-4feb-b40f-5be0e2ae1234
                      modified_time: 1616625211
                      name: Zone A
                      occupancy_limit: 4
                      org_id: 1234c1a0-6ef6-11e6-8bbf-02e208b21234
                      site_id: 123448e6-6ef6-11e6-8bbf-02e208b21234
                      vertices:
                        - x: 732
                          y: 1821
                        - x: 732.5
                          y: 1731
                        - x: 837.5
                          y: 1731.5
                        - x: 839
                          y: 1821
                      vertices_m:
                        - x: 24.1983341951072
                          y: 60.198314985369144
                        - x: 24.21486311190714
                          y: 57.22310996138056
                        - x: 27.685935639893827
                          y: 57.23963887818049
                        - x: 27.73552239029364
                          y: 60.198314985369144
              schema:
                items:
                  $ref: "#/components/schemas/stats_zone"
                type: array
          description: Ok
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteZonesStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/stats/{zone_type}/{zone_id}":
    get:
      description: Get Detail Zone Stats
      operationId: getSiteZoneStats
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    client_waits:
                      avg: 1200
                      max: 3610
                      min: 600
                      p95: 2800
                    clients:
                      - 5684dae9ac8b
                    id: 8ac84899-32db-6327-334c-9b6d58544cfe
                    map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                    name: Board Room
                    num_clients: 80
                    num_sdkclients: 0
                    sdkclients:
                      - 7e2b463d-c91c-ff7d-f3c0-6eccc6949ff8
              schema:
                $ref: "#/components/schemas/stats_zone_details"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteZoneStats
      tags:
        - Sites Stats
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/zone_type"
      - $ref: "#/components/parameters/zone_id"
  "/api/v1/sites/{site_id}/subscriptions":
    delete:
      description: Unsubscribe to Site Alarms
      operationId: UnsubscribeSite
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: UnsubscribeSite
      tags:
        - Sites Subscriptions
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Subscribe to Site Alarms
      operationId: SubscribeSite
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: SubscribeSite
      tags:
        - Sites Subscriptions
  "/api/v1/sites/{site_id}/synthetic_test":
    get:
      description: Get Synthetic Testing Status
      operationId: getSiteSyntheticTestStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  end_time:
                    type: integer
                  id:
                    type: string
                  report_url:
                    type: string
                  start_time:
                    type: integer
                  status:
                    type: string
                type: object
                x-examples:
                  Example 1:
                    end_time: 1675718873
                    id: 68b329da-9893-e340-99c7-d8ad5cb9c940
                    report_url: ""
                    start_time: 1675718807
                    status: ready
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteSyntheticTestStatus
      tags:
        - Sites Synthetic Tests
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Trigger Synthetic Testing
      operationId: triggerSiteSyntheticTest
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  email: john@abc.com
            schema:
              properties:
                email:
                  type: string
              type: object
              x-examples:
                Example 1:
                  email: john@abc.com
      responses:
        "200":
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    email: john@abc.com
                    id: 68b329da-9893-e340-99c7-d8ad5cb9c940
              schema:
                properties:
                  email:
                    type: string
                  id:
                    type: string
                type: object
                x-examples:
                  Example 1:
                    email: john@abc.com
                    id: 68b329da-9893-e340-99c7-d8ad5cb9c940
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: triggerSiteSyntheticTest
      tags:
        - Sites Synthetic Tests
  "/api/v1/sites/{site_id}/uisettings":
    get:
      description: CURD site UI settings
      operationId: getSiteCurdSettings
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - created_time: 1508823803
                      defaultScopeId: 67970e46-4e12-11e6-9188-0242ad112847
                      defaultScopeType: site
                      defaultTimeRange:
                        end: 1508828400
                        endDate: 10/23/2017
                        interval: 1d
                        name: This Week
                        shortName: thisWeek
                        start: 1508655600
                        usePreset: true
                      description: Description of the databoard
                      for_site: true
                      id: 3bdcc7e8-c04d-4512-b4fc-093da9057eb0
                      isCustomDataboard: true
                      isScopeLinked: true
                      isTimeRangeLinked: true
                      modified_time: 1508823803
                      name: New Databoard
                      org_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                      purpose: databoard
                      site_id: 67970e46-4e12-11e6-9188-0242ad112847
                      tiles:
                        - chartBand: 2.4 ghz
                          chartColor: "#00B4AD"
                          chartDirection: tx + rx
                          chartRankBy: ""
                          chartType: timeSeries
                          colspan: 5
                          column: 1
                          hideEmptyRows: true
                          id: 7a9ab38c-cfc3-483d-b51a-0aec571fadc0-j956nurl
                          metric:
                            apiName: client-dhcp-latency
                          name: New Analysis
                          row: 1
                          rowspan: 2
                          scopeId: e0c767834b4c
                          scopeType: client
                          timeRange:
                            end: 1508823743
                            endDate: 10/23/2017
                            interval: 1d
                            name: Past 7 Days
                            shortName: 7d
                            start: 1508223600
                            usePreset: true
                          trendType: line
                          vizType: averageTimeSeriesChart
              schema:
                items:
                  $ref: "#/components/schemas/curd_ui_settings"
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCurdSettings
      tags:
        - Sites UI Settings
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: CURD site UI settings
      operationId: createSiteCurdSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/curd_ui_settings"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 1508823803
                    defaultScopeId: 67970e46-4e12-11e6-9188-0242ad112847
                    defaultScopeType: site
                    defaultTimeRange:
                      end: 1508828400
                      endDate: 10/23/2017
                      interval: 1d
                      name: This Week
                      shortName: thisWeek
                      start: 1508655600
                      usePreset: true
                    description: Description of the databoard
                    for_site: true
                    id: 3bdcc7e8-c04d-4512-b4fc-093da9057eb0
                    isCustomDataboard: true
                    isScopeLinked: true
                    isTimeRangeLinked: true
                    modified_time: 1508823803
                    name: New Databoard
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    purpose: databoard
                    site_id: 67970e46-4e12-11e6-9188-0242ad112847
                    tiles:
                      - chartBand: 2.4 ghz
                        chartColor: "#00B4AD"
                        chartDirection: tx + rx
                        chartRankBy: ""
                        chartType: timeSeries
                        colspan: 5
                        column: 1
                        hideEmptyRows: true
                        id: 7a9ab38c-cfc3-483d-b51a-0aec571fadc0-j956nurl
                        metric:
                          apiName: client-dhcp-latency
                        name: New Analysis
                        row: 1
                        rowspan: 2
                        scopeId: e0c767834b4c
                        scopeType: client
                        timeRange:
                          end: 1508823743
                          endDate: 10/23/2017
                          interval: 1d
                          name: Past 7 Days
                          shortName: 7d
                          start: 1508223600
                          usePreset: true
                        trendType: line
                        vizType: averageTimeSeriesChart
              schema:
                $ref: "#/components/schemas/curd_ui_settings"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteCurdSettings
      tags:
        - Sites UI Settings
  "/api/v1/sites/{site_id}/uisettings/derived":
    get:
      description: Get both site UI settings(for_site=true) and org UI settings (for_site=false)
      operationId: getSiteDerivedCurdSetting
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 1508823803
                    defaultScopeId: 67970e46-4e12-11e6-9188-0242ad112847
                    defaultScopeType: site
                    defaultTimeRange:
                      end: 1508828400
                      endDate: 10/23/2017
                      interval: 1d
                      name: This Week
                      shortName: thisWeek
                      start: 1508655600
                      usePreset: true
                    description: Description of the databoard
                    for_site: true
                    id: 3bdcc7e8-c04d-4512-b4fc-093da9057eb0
                    isCustomDataboard: true
                    isScopeLinked: true
                    isTimeRangeLinked: true
                    modified_time: 1508823803
                    name: New Databoard
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    purpose: databoard
                    site_id: 67970e46-4e12-11e6-9188-0242ad112847
                    tiles:
                      - chartBand: 2.4 ghz
                        chartColor: "#00B4AD"
                        chartDirection: tx + rx
                        chartRankBy: ""
                        chartType: timeSeries
                        colspan: 5
                        column: 1
                        hideEmptyRows: true
                        id: 7a9ab38c-cfc3-483d-b51a-0aec571fadc0-j956nurl
                        metric:
                          apiName: client-dhcp-latency
                        name: New Analysis
                        row: 1
                        rowspan: 2
                        scopeId: e0c767834b4c
                        scopeType: client
                        timeRange:
                          end: 1508823743
                          endDate: 10/23/2017
                          interval: 1d
                          name: Past 7 Days
                          shortName: 7d
                          start: 1508223600
                          usePreset: true
                        trendType: line
                        vizType: averageTimeSeriesChart
              schema:
                $ref: "#/components/schemas/curd_ui_settings"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteDerivedCurdSetting
      tags:
        - Sites UI Settings
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/uisettings/{uisetting_id}":
    delete:
      description: CURD site UI settings
      operationId: deleteSiteCurdSetting
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteCurdSetting
      tags:
        - Sites UI Settings
    get:
      description: CURD site UI settings
      operationId: getSiteCurdSetting
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 1508823803
                    defaultScopeId: 67970e46-4e12-11e6-9188-0242ad112847
                    defaultScopeType: site
                    defaultTimeRange:
                      end: 1508828400
                      endDate: 10/23/2017
                      interval: 1d
                      name: This Week
                      shortName: thisWeek
                      start: 1508655600
                      usePreset: true
                    description: Description of the databoard
                    for_site: true
                    id: 3bdcc7e8-c04d-4512-b4fc-093da9057eb0
                    isCustomDataboard: true
                    isScopeLinked: true
                    isTimeRangeLinked: true
                    modified_time: 1508823803
                    name: New Databoard
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    purpose: databoard
                    site_id: 67970e46-4e12-11e6-9188-0242ad112847
                    tiles:
                      - chartBand: 2.4 ghz
                        chartColor: "#00B4AD"
                        chartDirection: tx + rx
                        chartRankBy: ""
                        chartType: timeSeries
                        colspan: 5
                        column: 1
                        hideEmptyRows: true
                        id: 7a9ab38c-cfc3-483d-b51a-0aec571fadc0-j956nurl
                        metric:
                          apiName: client-dhcp-latency
                        name: New Analysis
                        row: 1
                        rowspan: 2
                        scopeId: e0c767834b4c
                        scopeType: client
                        timeRange:
                          end: 1508823743
                          endDate: 10/23/2017
                          interval: 1d
                          name: Past 7 Days
                          shortName: 7d
                          start: 1508223600
                          usePreset: true
                        trendType: line
                        vizType: averageTimeSeriesChart
              schema:
                $ref: "#/components/schemas/curd_ui_settings"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCurdSetting
      tags:
        - Sites UI Settings
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/uisetting_id"
    post:
      description: CURD site UI settings
      operationId: updateSiteCurdSetting
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  created_time: 0
                  defaultScopeId: string
                  defaultScopeType: string
                  defaultTimeRange:
                    end: 0
                    endDate: string
                    interval: string
                    name: string
                    shortName: string
                    start: 0
                    usePreset: true
                  description: string
                  for_site: true
                  id: 491f6eca-6276-4993-bfeb-a3cbbbba6f08
                  isCustomDataboard: true
                  isScopeLinked: true
                  isTimeRangeLinked: true
                  modified_time: 0
                  name: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  purpose: string
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  tiles:
                    - chartBand: string
                      chartColor: string
                      chartDirection: string
                      chartRankBy: string
                      chartType: string
                      colspan: 0
                      column: 0
                      hideEmptyRows: true
                      id: string
                      metric:
                        apiName: string
                      name: string
                      row: 0
                      rowspan: 0
                      scopeId: string
                      scopeType: string
                      timeRange:
                        end: 0
                        endDate: string
                        interval: string
                        name: string
                        shortName: string
                        start: 0
                        usePreset: true
                      trendType: string
                      vizType: string
            schema:
              $ref: "#/components/schemas/curd_ui_settings"
        description: Request Body
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_time: 0
                    defaultScopeId: string
                    defaultScopeType: string
                    defaultTimeRange:
                      end: 0
                      endDate: string
                      interval: string
                      name: string
                      shortName: string
                      start: 0
                      usePreset: true
                    description: string
                    for_site: true
                    id: 490f6eca-6276-4993-bfeb-b3cbbbba6f08
                    isCustomDataboard: true
                    isScopeLinked: true
                    isTimeRangeLinked: true
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    purpose: string
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    tiles:
                      - chartBand: string
                        chartColor: string
                        chartDirection: string
                        chartRankBy: string
                        chartType: string
                        colspan: 0
                        column: 0
                        hideEmptyRows: true
                        id: string
                        metric:
                          apiName: string
                        name: string
                        row: 0
                        rowspan: 0
                        scopeId: string
                        scopeType: string
                        timeRange:
                          end: 0
                          endDate: string
                          interval: string
                          name: string
                          shortName: string
                          start: 0
                          usePreset: true
                        trendType: string
                        vizType: string
              schema:
                $ref: "#/components/schemas/curd_ui_settings"
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteCurdSetting
      tags:
        - Sites UI Settings
  "/api/v1/sites/{site_id}/vbeacons":
    get:
      description: Get List of Site Virtual Beacons
      operationId: listSiteVBeacons
      responses:
        "200":
          $ref: "#/components/responses/VBeaconsArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteVBeacons
      tags:
        - Sites vBeacons
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Virtual Beacon
      operationId: createSiteVBeacon
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  major: 0
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  message: string
                  minor: 0
                  name: string
                  power: 4
                  power_mode: default
                  url: string
                  uuid: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  wayfinding_nodename: string
                  x: 0
                  y: 0
            schema:
              $ref: "#/components/schemas/vbeacon"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/VBeacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteVBeacon
      tags:
        - Sites vBeacons
  "/api/v1/sites/{site_id}/vbeacons/{vbeacon_id}":
    delete:
      description: Delete Site Virtual Beacon
      operationId: deleteSiteVBeacon
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteVBeacon
      tags:
        - Sites vBeacons
    get:
      description: Get Site Virtual Beacon Details
      operationId: getSiteVBeacon
      responses:
        "200":
          $ref: "#/components/responses/VBeacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteVBeacon
      tags:
        - Sites vBeacons
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/vbeacon_id"
    put:
      description: Update Site Virtual Beacon
      operationId: updateSiteVBeacon
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  major: 0
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  message: string
                  minor: 0
                  name: string
                  power: 4
                  power_mode: default
                  url: string
                  uuid: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  wayfinding_nodename: string
                  x: 0
                  y: 0
            schema:
              $ref: "#/components/schemas/vbeacon"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/VBeacon"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteVBeacon
      tags:
        - Sites vBeacons
  "/api/v1/sites/{site_id}/webhooks":
    get:
      description: Get List of Site Webhooks
      operationId: listSiteWebhooks
      responses:
        "200":
          $ref: "#/components/responses/WebhooksArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteWebhooks
      tags:
        - Sites Webhooks
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: |
        Webhook defines a webhook, modeled after [github’s model](https://developer.github.com/webhooks/).

        There is two types of webhooks:
        * webhooks ([examples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace/folder/224925-be01e694-7253-4195-8563-78e2a745e114))
        * raw data webhooks ([examples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace/folder/224925-e2d5d5f8-4bdb-4efc-93e4-90f4b33d0b2b))

        ##### Webhooks
        Webhooks can be configured at the org level (subset of topics only) and at the site level. It is possible to have multiple topics in the same webhook configuration and/or to have multiple webhooks configured at the same time.

        ##### Client Raw Data Webhooks
        Raw data webhooks are a special subset of webhooks that provide insight into raw data packets emitted by a client, identified by their advertising MAC address (assets, discovered ble, connected wifi, unconnected wifi). The data that client raw data webhooks encompasses are reporting AP information, RSSI Data, and any special packets/telemetry packets that the client may emit. Note that client raw webhooks are the raw data coming from the client and do not contain the X,Y location data of the client. In order to get the location data for a client please see our location webhooks. Clients can be identified uniquely across these client raw data topics and location webhook topic using MAC address as the Unique identifier (client identifier).

        ###### Client Raw Data Webhooks Topics
        Topics that correspond to client raw data for different client types. 
        * `asset-raw-rssi` - Raw data from packets emitted by named and filtered assets 
        * `discovered-raw-rssi` - Raw data from packets emitted by passive BLE devices 
        * `wifi-conn-raw` - Raw data from packets emitted by connected devices 
        * `wifi-unconn-raw` - Raw data from packets emitted by unconnected devices (passive)

        ###### Rules for configuring client raw data webhooks
        1. Only one instance of a webhook object containing a client raw data webhook topic is allowed. (a site level entry will override an org level entry for the client raw data webhook topic in question)
        2. Only one client raw data webhook topic is allowed per `http-post` message to webhooks api
      operationId: createSiteWebhook
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  enabled: true
                  headers: {}
                  name: string
                  secret: string
                  splunk_token: string
                  topics:
                    - location
                  type: http-post
                  url: string
                  verify_cert: true
            schema:
              $ref: "#/components/schemas/webhook"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              examples:
                RawDataWebhook already created:
                  value:
                    detail: Webhook already configured for special location topic
                    webhook_id: f1ff49e8-9f77-420a-9854-c7de46d7cf80
                RawDataWebhook multiple topics:
                  value:
                    detail: Only one location topic can be configured per URL
              schema:
                properties:
                  detail:
                    type: string
                  webhook_id:
                    type: string
                type: object
                x-examples:
                  example-1:
                    detail: Webhook already configured for special location topic
                    webhook_id: f1ff49e8-9f77-420a-9854-c7de46d7cf80
          description: Bad request
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWebhook
      tags:
        - Sites Webhooks
  "/api/v1/sites/{site_id}/webhooks/{webhook_id}":
    delete:
      description: Delete Site Webhook
      operationId: deleteSiteWebhook
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWebhook
      tags:
        - Sites Webhooks
    get:
      description: Get Site Webhook Details
      operationId: getSiteWebhook
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWebhook
      tags:
        - Sites Webhooks
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/webhook_id"
    put:
      description: Update Site Webhook
      operationId: updateSiteWebhook
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  enabled: true
                  headers: {}
                  name: string
                  secret: string
                  splunk_token: string
                  topics:
                    - location
                  type: http-post
                  url: string
                  verify_cert: true
            schema:
              $ref: "#/components/schemas/webhook"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Webhook"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWebhook
      tags:
        - Sites Webhooks
  "/api/v1/sites/{site_id}/webhooks/{webhook_id}/ping":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/webhook_id"
    post:
      description: send a Ping event to the webhook
      operationId: pingSiteWebhook
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: pingSiteWebhook
      tags:
        - Sites Webhooks
  "/api/v1/sites/{site_id}/wired_clients/count":
    get:
      description: Count by Distinct Attributes of Clients
      operationId: countSiteClientsWired
      parameters:
        - in: query
          name: distinct
          schema:
            default: mac
            enum:
              - port_id
              - vlan
              - mac
            type: string
        - description: client mac
          in: query
          name: mac
          schema:
            type: string
        - description: device mac
          in: query
          name: device_mac
          schema:
            type: string
        - description: port id
          in: query
          name: port_id
          schema:
            type: string
        - description: vlan
          in: query
          name: vlan
          schema:
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/count"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteClientsWired
      tags:
        - Sites Wired Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/wired_clients/search":
    get:
      description: Search Wired Clients
      operationId: searchSiteClientsWired
      parameters:
        - description: device mac
          in: query
          name: device_mac
          schema:
            type: string
        - description: client mac
          in: query
          name: mac
          schema:
            type: string
        - description: port id
          in: query
          name: port_id
          schema:
            type: string
        - description: vlan
          in: query
          name: vlan
          schema:
            type: string
        - $ref: "#/components/parameters/ip"
        - description: manufacture
          in: query
          name: manufacture
          schema:
            type: string
        - description: single entry of hostname/mac
          in: query
          name: text
          schema:
            type: string
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          $ref: "#/components/responses/WiredClientsSearch"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteClientsWired
      tags:
        - Sites Wired Clients
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/wlans":
    get:
      description: Get List of Site WLANs
      operationId: listSiteWlans
      responses:
        "200":
          $ref: "#/components/responses/WlansArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteWlans
      tags:
        - Sites Wlans
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site WLAN
      operationId: createSiteWlan
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      port: 0
                      secret: string
                  airwatch:
                    api_key: string
                    console_url: string
                    enabled: true
                    password: string
                    username: string
                  allow_ipv6_ndp: true
                  allow_mdns: true
                  ap_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  app_limit:
                    apps: {}
                    enabled: true
                    wxtag_ids: {}
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 0
                        dst_subnet: string
                        src_subnet: string
                      skype-business-voice:
                        dscp: 0
                    enabled: true
                    others:
                      - dscp: 0
                        dst_subnet: string
                        port_ranges: string
                        protocol: string
                        src_subnet: string
                  apply_to: site
                  arp_filter: true
                  auth:
                    eap_reauth: true
                    enable_mac_auth: true
                    key_idx: 1
                    keys:
                      - string
                    multi_psk_only: true
                    owe: string
                    pairwise:
                      - string
                    private_wlan: true
                    psk: string123
                    type: open
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                    - host: string
                      port: 0
                      secret: string
                  auth_servers_nas_id: string
                  auth_servers_nas_ip: string
                  auth_servers_retries: 0
                  auth_servers_timeout: 0
                  band: string
                  band_steer: true
                  band_steer_force_band5: true
                  block_blacklist_clients: true
                  bonjour:
                    additional_vlan_ids:
                      - 0
                    enabled: true
                    services:
                      $service_name:
                        disable_local: true
                        radius_groups:
                          - string
                        scope: string
                  cisco_cwa:
                    allowed_hostnames:
                      - string
                    allowed_subnets:
                      - string
                    enabled: true
                  client_limit_down: 0
                  client_limit_down_enabled: true
                  client_limit_up: 0
                  client_limit_up_enabled: true
                  coa_servers:
                    - disable_event_timestamp_check: true
                      enabled: true
                      ip: 192.168.1.1
                      port: "3799"
                      secret: string
                  disable_11ax: true
                  disable_uapsd: true
                  disable_wmm: true
                  dns_server_rewrite:
                    enabled: true
                    radius_groups: {}
                  dtim: 0
                  dynamic_psk:
                    enabled: true
                  dynamic_vlan:
                    default_vlan_id: 1
                    enabled: true
                    local_vlan_ids:
                      - 1
                    type: standard
                    vlans: {}
                  enable_wireless_bridging: true
                  enabled: true
                  hide_ssid: true
                  hostname_ie: true
                  hotspot20:
                    enabled: true
                    operators:
                      - string
                    venue_name: string
                  interface: all
                  isolation: true
                  legacy_overds: true
                  limit_bcast: true
                  limit_probe_response: true
                  max_idletime: 60
                  mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  no_static_dns: true
                  no_static_ip: true
                  portal:
                    amazon_client_id: string
                    amazon_client_secret: string
                    amazon_email_domains:
                      - string
                    amazon_enabled: true
                    auth: none
                    azure_client_id: string
                    azure_client_secret: string
                    azure_enabled: true
                    azure_tenant_id: string
                    bypass_when_cloud_down: true
                    email_enabled: true
                    enabled: true
                    expire: 0
                    external_portal_url: string
                    facebook_client_id: string
                    facebook_client_secret: string
                    facebook_email_domains:
                      - string
                    facebook_enabled: true
                    forward: true
                    forward_url: string
                    google_email_domains:
                      - string
                    google_enabled: true
                    microsoft_client_id: string
                    microsoft_client_secret: string
                    microsoft_email_domains:
                      - string
                    microsoft_enabled: true
                    passphrase_enabled: true
                    password: string
                    portal_allowed_hostnames: string
                    portal_allowed_subnets: string
                    portal_api_secret: string
                    portal_denied_hostnames: string
                    portal_image: string
                    portal_sso_url: string
                    privacy: true
                    sms_enabled: true
                    sms_provider: manual
                    sponsor_email_domains:
                      - string
                    sponsor_enabled: true
                    sponsor_link_validity_duration: "60"
                    sso_default_role: string
                    sso_idp_cert: string
                    sso_idp_sign_algo: string
                    sso_idp_sso_url: string
                    sso_issuer: string
                    thumbnail: string
                    twilio_auth_token: string
                    twilio_phone_number: string
                    twilio_sid: string
                  portal_allowed_hostnames:
                    - string
                  portal_allowed_subnets:
                    - string
                  portal_api_secret: string
                  portal_denied_hostnames:
                    - string
                  portal_image: http://example.com
                  portal_sso_url: string
                  portal_template_url: string
                  qos:
                    class: best_effort
                    overwrite: true
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                  rateset:
                    "5":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                    "24":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                  roam_mode: 11r
                  schedule:
                    enabled: true
                    hours: {}
                  sle_excluded: true
                  ssid: string
                  thumbnail: http://example.com
                  use_eapol_v1: true
                  vlan_enabled: true
                  vlan_id: 1
                  vlan_ids:
                    - 1
                  vlan_pooling: true
                  wlan_limit_down: 0
                  wlan_limit_down_enabled: true
                  wlan_limit_up: 0
                  wlan_limit_up_enabled: true
                  wxtag_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  wxtunnel_remote_id: string
            schema:
              $ref: "#/components/schemas/wlan"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWlan
      tags:
        - Sites Wlans
  "/api/v1/sites/{site_id}/wlans/derived":
    get:
      description: Get Wlans Derived
      operationId: getSiteWlanDerived
      parameters:
        - description: whether to resolve SITE_VARS
          example: true
          in: query
          name: resolve
          schema:
            default: false
            type: boolean
      responses:
        "200":
          $ref: "#/components/responses/WlansArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWlanDerived
      tags:
        - Sites Wlans
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/wlans/{wlan_id}":
    delete:
      description: Delete Site WLAN
      operationId: deleteSiteWlan
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWlan
      tags:
        - Sites Wlans
    get:
      description: Get Site WLAN
      operationId: getSiteWlan
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWlan
      tags:
        - Sites Wlans
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wlan_id"
    put:
      description: Update Site WLAN
      operationId: updateSiteWlan
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      port: 0
                      secret: string
                  airwatch:
                    api_key: string
                    console_url: string
                    enabled: true
                    password: string
                    username: string
                  allow_ipv6_ndp: true
                  allow_mdns: true
                  ap_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  app_limit:
                    apps: {}
                    enabled: true
                    wxtag_ids: {}
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 0
                        dst_subnet: string
                        src_subnet: string
                      skype-business-voice:
                        dscp: 0
                    enabled: true
                    others:
                      - dscp: 0
                        dst_subnet: string
                        port_ranges: string
                        protocol: string
                        src_subnet: string
                  apply_to: site
                  arp_filter: true
                  auth:
                    eap_reauth: true
                    enable_mac_auth: true
                    key_idx: 1
                    keys:
                      - string
                    multi_psk_only: true
                    owe: string
                    pairwise:
                      - string
                    private_wlan: true
                    psk: string123
                    type: open
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                    - host: string
                      port: 0
                      secret: string
                  auth_servers_nas_id: string
                  auth_servers_nas_ip: string
                  auth_servers_retries: 0
                  auth_servers_timeout: 0
                  band: string
                  band_steer: true
                  band_steer_force_band5: true
                  block_blacklist_clients: true
                  bonjour:
                    additional_vlan_ids:
                      - 0
                    enabled: true
                    services:
                      $service_name:
                        disable_local: true
                        radius_groups:
                          - string
                        scope: string
                  cisco_cwa:
                    allowed_hostnames:
                      - string
                    allowed_subnets:
                      - string
                    enabled: true
                  client_limit_down: 0
                  client_limit_down_enabled: true
                  client_limit_up: 0
                  client_limit_up_enabled: true
                  coa_servers:
                    - disable_event_timestamp_check: true
                      enabled: true
                      ip: 192.168.1.1
                      port: "3799"
                      secret: string
                  disable_11ax: true
                  disable_uapsd: true
                  disable_wmm: true
                  dns_server_rewrite:
                    enabled: true
                    radius_groups: {}
                  dtim: 0
                  dynamic_psk:
                    enabled: true
                  dynamic_vlan:
                    default_vlan_id: 1
                    enabled: true
                    local_vlan_ids:
                      - 1
                    type: standard
                    vlans: {}
                  enable_wireless_bridging: true
                  enabled: true
                  hide_ssid: true
                  hostname_ie: true
                  hotspot20:
                    enabled: true
                    operators:
                      - string
                    venue_name: string
                  interface: all
                  isolation: true
                  legacy_overds: true
                  limit_bcast: true
                  limit_probe_response: true
                  max_idletime: 60
                  mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  no_static_dns: true
                  no_static_ip: true
                  portal:
                    amazon_client_id: string
                    amazon_client_secret: string
                    amazon_email_domains:
                      - string
                    amazon_enabled: true
                    auth: none
                    azure_client_id: string
                    azure_client_secret: string
                    azure_enabled: true
                    azure_tenant_id: string
                    bypass_when_cloud_down: true
                    email_enabled: true
                    enabled: true
                    expire: 0
                    external_portal_url: string
                    facebook_client_id: string
                    facebook_client_secret: string
                    facebook_email_domains:
                      - string
                    facebook_enabled: true
                    forward: true
                    forward_url: string
                    google_email_domains:
                      - string
                    google_enabled: true
                    microsoft_client_id: string
                    microsoft_client_secret: string
                    microsoft_email_domains:
                      - string
                    microsoft_enabled: true
                    passphrase_enabled: true
                    password: string
                    portal_allowed_hostnames: string
                    portal_allowed_subnets: string
                    portal_api_secret: string
                    portal_denied_hostnames: string
                    portal_image: string
                    portal_sso_url: string
                    privacy: true
                    sms_enabled: true
                    sms_provider: manual
                    sponsor_email_domains:
                      - string
                    sponsor_enabled: true
                    sponsor_link_validity_duration: "60"
                    sso_default_role: string
                    sso_idp_cert: string
                    sso_idp_sign_algo: string
                    sso_idp_sso_url: string
                    sso_issuer: string
                    thumbnail: string
                    twilio_auth_token: string
                    twilio_phone_number: string
                    twilio_sid: string
                  portal_allowed_hostnames:
                    - string
                  portal_allowed_subnets:
                    - string
                  portal_api_secret: string
                  portal_denied_hostnames:
                    - string
                  portal_image: http://example.com
                  portal_sso_url: string
                  portal_template_url: string
                  qos:
                    class: best_effort
                    overwrite: true
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                  rateset:
                    "5":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                    "24":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                  roam_mode: 11r
                  schedule:
                    enabled: true
                    hours: {}
                  sle_excluded: true
                  ssid: string
                  thumbnail: http://example.com
                  use_eapol_v1: true
                  vlan_enabled: true
                  vlan_id: 1
                  vlan_ids:
                    - 1
                  vlan_pooling: true
                  wlan_limit_down: 0
                  wlan_limit_down_enabled: true
                  wlan_limit_up: 0
                  wlan_limit_up_enabled: true
                  wxtag_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  wxtunnel_remote_id: string
            schema:
              $ref: "#/components/schemas/wlan"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wlan"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWlan
      tags:
        - Sites Wlans
  "/api/v1/sites/{site_id}/wlans/{wlan_id}/portal_image":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wlan_id"
    post:
      description: Wlan Portal Image Upload
      operationId: uploadSiteWlanPortalImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/image_upload"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: uploadSiteWlanPortalImage
      tags:
        - Sites Wlans
  "/api/v1/sites/{site_id}/wlans/{wlan_id}/portal_template":
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wlan_id"
    put:
      description: Update a Portal Template
      operationId: updateSiteWlanPortalTemplate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  accessCodeAlternateEmail: string
                  alignment: string
                  authButtonAmazon: string
                  authButtonAzure: string
                  authButtonEmail: string
                  authButtonFacebook: string
                  authButtonGoogle: string
                  authButtonMicrosoft: string
                  authButtonPassphrase: string
                  authButtonSms: string
                  authButtonSponsor: string
                  authLabel: string
                  backLink: string
                  color: string
                  colorDark: string
                  colorLight: string
                  company: true
                  companyError: string
                  companyLabel: string
                  email: true
                  emailAccessDomainError: string
                  emailCancel: string
                  emailCodeError: string
                  emailError: string
                  emailFieldLabel: string
                  emailLabel: string
                  emailMessage: string
                  emailSubmit: string
                  emailTitle: string
                  field1: true
                  field1Error: string
                  field1Label: string
                  field1Required: true
                  field2: true
                  field2Error: string
                  field2Label: string
                  field2Required: true
                  field3: true
                  field3Error: string
                  field3Label: string
                  field3Required: true
                  field4: true
                  field4Error: string
                  field4Label: string
                  field4Required: true
                  message: string
                  name: true
                  nameError: string
                  nameLabel: string
                  optout: true
                  optoutLabel: string
                  pageTitle: string
                  passphraseCancel: string
                  passphraseError: string
                  passphraseLabel: string
                  passphraseMessage: string
                  passphraseSubmit: string
                  passphraseTitle: string
                  poweredBy: true
                  requiredFieldLabel: string
                  signInLabel: string
                  smsCarrierDefault: string
                  smsCarrierError: string
                  smsCarrierFieldLabel: string
                  smsCodeCancel: string
                  smsCodeError: string
                  smsCodeFieldLabel: string
                  smsCodeMessage: string
                  smsCodeSubmit: string
                  smsCodeTitle: string
                  smsCountryFieldLabel: string
                  smsCountryFormat: string
                  smsHaveAccessCode: string
                  smsMessageFormat: string
                  smsNumberCancel: string
                  smsNumberError: string
                  smsNumberFieldLabel: string
                  smsNumberFormat: string
                  smsNumberMessage: string
                  smsNumberSubmit: string
                  smsNumberTitle: string
                  smsUsernameFormat: string
                  smsValidityDuration: 0
                  sponsorBackLink: string
                  sponsorCancel: string
                  sponsorEmail: string
                  sponsorEmailError: string
                  sponsorEmailTemplate: string
                  sponsorInfoApproved: string
                  sponsorInfoDenied: string
                  sponsorInfoPending: string
                  sponsorName: string
                  sponsorNameError: string
                  sponsorNotePending: string
                  sponsorStatusApproved: string
                  sponsorStatusDenied: string
                  sponsorStatusPending: string
                  sponsorSubmit: string
                  tos: true
                  tosAcceptLabel: string
                  tosError: string
                  tosLink: string
                  tosText: string
            schema:
              $ref: "#/components/schemas/wlan_portal_template"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Portaltemplate"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWlanPortalTemplate
      tags:
        - Sites Wlans
  "/api/v1/sites/{site_id}/wxrules":
    get:
      description: Get List of Site WxLan Rules
      operationId: listSiteWxRules
      responses:
        "200":
          $ref: "#/components/responses/WxruleArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteWxRules
      tags:
        - Sites WxRules
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site WxLan Rule
      operationId: createSiteWxRule
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  action: allow
                  blocked_apps:
                    - string
                  dst_allow_wxtags:
                    - string
                  dst_deny_wxtags:
                    - string
                  enabled: true
                  name: string
                  order: 0
                  src_wxtags:
                    - string
            schema:
              $ref: "#/components/schemas/wxlan_rule"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWxRule
      tags:
        - Sites WxRules
  "/api/v1/sites/{site_id}/wxrules/derived":
    get:
      description: Get Site WxLan Rule Derived
      operationId: getSiteWxRulesDerived
      responses:
        "200":
          $ref: "#/components/responses/WxruleArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWxRulesDerived
      tags:
        - Sites WxRules
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/wxrules/{wxrules_id}":
    delete:
      description: Delete Site WxLan Rule
      operationId: deleteSiteWxRule
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWxRule
      tags:
        - Sites WxRules
    get:
      description: Get Site WxLan Rule Details
      operationId: getSiteWxRule
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWxRule
      tags:
        - Sites WxRules
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wxrules_id"
    put:
      description: Update Site WxLan Rule
      operationId: updateSiteWxRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/wxlan_rule"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxrule"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWxRule
      tags:
        - Sites WxRules
  "/api/v1/sites/{site_id}/wxtags":
    get:
      description: Get List of Site WxTags
      operationId: listSiteWxTags
      responses:
        "200":
          $ref: "#/components/responses/WxtagArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteWxTags
      tags:
        - Sites WxTags
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site WxTag
      operationId: createSiteWxTag
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  last_ips:
                    - string
                  mac: string
                  match: wlan_id
                  name: string
                  op: in
                  resource_mac: string
                  services:
                    - string
                  specs:
                    - port_range: string
                      protocol: tcp
                      subnet:
                        - string
                  subnet: string
                  type: match
                  values:
                    - string
            schema:
              $ref: "#/components/schemas/wxlan_tag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWxTag
      tags:
        - Sites WxTags
  "/api/v1/sites/{site_id}/wxtags/apps":
    get:
      description: Get Application List
      operationId: getSiteApplicationList
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - group: Emails
                      key: gmail
                      name: Gmail - web/app
              schema:
                items:
                  properties:
                    group:
                      type: string
                    key:
                      type: string
                    name:
                      type: string
                  required:
                    - key
                    - name
                    - group
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteApplicationList
      tags:
        - Sites WxTags
    parameters:
      - $ref: "#/components/parameters/site_id"
  "/api/v1/sites/{site_id}/wxtags/{wxtag_id}":
    delete:
      description: Delete Site WxTag
      operationId: deleteSiteWxTag
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWxTag
      tags:
        - Sites WxTags
    get:
      description: Get Site WxTag Details
      operationId: getSiteWxTag
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWxTag
      tags:
        - Sites WxTags
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wxtag_id"
    put:
      description: Update Site WxTag
      operationId: updateSiteWxTag
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  last_ips:
                    - string
                  mac: string
                  match: wlan_id
                  name: string
                  op: in
                  resource_mac: string
                  services:
                    - string
                  specs:
                    - port_range: string
                      protocol: tcp
                      subnet:
                        - string
                  subnet: string
                  type: match
                  values:
                    - string
            schema:
              $ref: "#/components/schemas/wxlan_tag"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtag"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWxTag
      tags:
        - Sites WxTags
  "/api/v1/sites/{site_id}/wxtags/{wxtag_id}/clients":
    get:
      description: Get Current Matching Clients of a WXLAN Tag
      operationId: getSiteCurrentMatchingClientsOfAWxTag
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    - mac: 5684dae9ac8b
                      since: 1428939600
              schema:
                items:
                  properties:
                    mac:
                      type: string
                    since:
                      type: number
                  required:
                    - mac
                    - since
                  type: object
                type: array
                uniqueItems: true
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteCurrentMatchingClientsOfAWxTag
      tags:
        - Sites WxTags
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wxtag_id"
  "/api/v1/sites/{site_id}/wxtunnels":
    get:
      description: Get List of Site WxLan Tunnels
      operationId: listSiteWxTunnels
      responses:
        "200":
          $ref: "#/components/responses/WxtunnelArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteWxTunnels
      tags:
        - Sites WxTunnels
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: Create Site WxLan Tunnel
      operationId: createSiteWxTunnel
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  dmvpn:
                    enabled: true
                    holding_time: 0
                    host_routes:
                      - string
                  for_mgmt: true
                  hello_interval: 1
                  hello_retries: 3
                  hostname: string
                  ipsec:
                    enabled: true
                    psk: string123
                  is_static: true
                  mtu: 0
                  name: string
                  peers:
                    - string
                  router_id: string
                  secret: string
                  sessions:
                    - ap_as_session_id: string
                      comment: string
                      enable_cookie: true
                      ethertype: ethernet
                      local_session_id: 1
                      pseudo_802.1ad_enabled: true
                      remote_id: string
                      remote_session_id: 1
                      use_ap_as_session_ids: true
                  udp_port: 0
                  use_udp: true
            schema:
              $ref: "#/components/schemas/wxlan_tunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteWxTunnel
      tags:
        - Sites WxTunnels
  "/api/v1/sites/{site_id}/wxtunnels/{wxtunnel_id}":
    delete:
      description: Delete Site WxLan Tunnel
      operationId: deleteSiteWxTunnel
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteWxTunnel
      tags:
        - Sites WxTunnels
    get:
      description: Get Site WxLan tunnel Details
      operationId: getSiteWxTunnel
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteWxTunnel
      tags:
        - Sites WxTunnels
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/wxtunnel_id"
    put:
      description: Update Site WxLan Tunnel
      operationId: updateSiteWxTunnel
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  dmvpn:
                    enabled: true
                    holding_time: 0
                    host_routes:
                      - string
                  for_mgmt: true
                  hello_interval: 1
                  hello_retries: 3
                  hostname: string
                  ipsec:
                    enabled: true
                    psk: string123
                  is_static: true
                  mtu: 0
                  name: string
                  peers:
                    - string
                  router_id: string
                  secret: string
                  sessions:
                    - ap_as_session_id: string
                      comment: string
                      enable_cookie: true
                      ethertype: ethernet
                      local_session_id: 1
                      pseudo_802.1ad_enabled: true
                      remote_id: string
                      remote_session_id: 1
                      use_ap_as_session_ids: true
                  udp_port: 0
                  use_udp: true
            schema:
              $ref: "#/components/schemas/wxlan_tunnel"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Wxtunnel"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteWxTunnel
      tags:
        - Sites WxTunnels
  "/api/v1/sites/{site_id}/zones":
    get:
      description: Get List of Site Zones
      operationId: listSiteZones
      responses:
        "200":
          $ref: "#/components/responses/ZonesArray"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: listSiteZones
      tags:
        - Sites Zones
    parameters:
      - $ref: "#/components/parameters/site_id"
    post:
      description: "Create Site Zone "
      operationId: createSiteZone
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  vertices:
                    - x: 0
                      y: 0
            schema:
              $ref: "#/components/schemas/zone"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Zone"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: createSiteZone
      tags:
        - Sites Zones
  "/api/v1/sites/{site_id}/zones/{zone_id}":
    delete:
      description: Delete Site Zone
      operationId: deleteSiteZone
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: deleteSiteZone
      tags:
        - Sites Zones
    get:
      description: Get Site Zone Details
      operationId: getSiteZone
      responses:
        "200":
          $ref: "#/components/responses/Zone"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: getSiteZone
      tags:
        - Sites Zones
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/zone_id"
    put:
      description: Update Site Zone
      operationId: updateSiteZone
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  vertices:
                    - x: 0
                      y: 0
            schema:
              $ref: "#/components/schemas/zone"
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/Zone"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: updateSiteZone
      tags:
        - Sites Zones
  "/api/v1/sites/{site_id}/{zone_type}/count":
    get:
      description: Count Site Zone Sessions
      operationId: countSiteZoneSessions
      parameters:
        - example: scope_id
          in: query
          name: distinct
          schema:
            default: scope_id
            enum:
              - user_type
              - user
              - scope_id
              - scope
            type: string
        - description: user type
          in: query
          name: user_type
          schema:
            default: client
            enum:
              - client
              - sdkclient
              - asset
            type: string
        - description: client MAC / Asset MAC / SDK UUID
          in: query
          name: user
          schema:
            type: string
        - description: if `scope`==`map`/`zone`/`rssizone`, the scope id
          in: query
          name: scope_id
          schema:
            type: string
        - description: scope
          in: query
          name: scope
          schema:
            default: site
            enum:
              - site
              - map
              - zone
              - rssizone
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1531862583
                    results:
                      - count: 18
                        scope_id: f0c38357-9370-4506-84f9-0f94a63faddd
                      - count: 7
                        scope_id: a002eb82-6d08-4556-b8c5-2f2547a7c7f8
                      - count: 5
                        scope_id: 85fbba9e-4e12-11e6-9188-0242ac110007
                    start: 1531776183
                    total: 3
              schema:
                properties:
                  end:
                    type: integer
                  results:
                    items:
                      properties:
                        count:
                          type: integer
                        scope_id:
                          format: uuid
                          type: string
                      required:
                        - scope_id
                        - count
                    type: array
                    uniqueItems: true
                  start:
                    type: integer
                  total:
                    type: integer
                required:
                  - end
                  - results
                  - start
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: countSiteZoneSessions
      tags:
        - Sites Zones
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/zone_type"
  "/api/v1/sites/{site_id}/{zone_type}/visits/search":
    get:
      description: Search Zone Sessions
      operationId: searchSiteZoneSessions
      parameters:
        - description: user type, client (default) / sdkclient / asset
          in: query
          name: user_type
          schema:
            default: client
            enum:
              - client
              - sdkclient
              - asset
            type: string
        - description: client MAC / Asset MAC / SDK UUID
          in: query
          name: user
          schema:
            type: string
        - description: if `scope`==`map`/`zone`/`rssizone`, the scope id
          in: query
          name: scope_id
          schema:
            type: string
        - description: scope
          in: query
          name: scope
          schema:
            default: site
            enum:
              - site
              - map
              - zone
              - rssizone
            type: string
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/start"
        - $ref: "#/components/parameters/end"
        - $ref: "#/components/parameters/duration"
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end: 1541705289.769911
                    limit: 2
                    next: /api/v1/sites/67970e46-4e12-11e6-9188-0242ac110007/zones/visits/search?limit=2&end=1541705247.000&scope_id=85fbba9e-4e12-11e6-9188-0242ac110007&user_type=asset&start=1541618889.77
                    results:
                      - enter: 1541705254
                        scope: map
                        timestamp: 1541705254
                        user: c4b301c81166
                      - enter: 1541705247
                        scope: map
                        timestamp: 1541705247
                        user: c57bbb6a1277
                    start: 1541618889.769886
                    total: 5892
              schema:
                properties:
                  end:
                    type: number
                  limit:
                    type: integer
                  next:
                    type: string
                  results:
                    items:
                      properties:
                        enter:
                          type: integer
                        scope:
                          type: string
                        timestamp:
                          type: number
                        user:
                          type: string
                      required:
                        - scope
                        - enter
                        - user
                        - timestamp
                    minItems: 1
                    type: array
                    uniqueItems: true
                  start:
                    type: number
                  total:
                    type: integer
                required:
                  - end
                  - results
                  - next
                  - start
                  - limit
                  - total
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: searchSiteZoneSessions
      tags:
        - Sites Zones
    parameters:
      - $ref: "#/components/parameters/site_id"
      - $ref: "#/components/parameters/zone_type"
  /api/v1/utils/test_telstra:
    get:
      description: |-
        Allows validation of Telstra sms gateway credentials.

        In case of success, a text message confirming successful setup should be received. In case of error, telstra error message are returned.
      operationId: testSiteWlanTelstraSetup
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  telstra_client_id: "123456"
                  telstra_client_secret: abcdef
                  to: "+911122334455"
            schema:
              properties:
                telstra_client_id:
                  description: Telstra client id
                  type: string
                telstra_client_secret:
                  description: Telstra client secret
                  type: string
                to:
                  description: Phone number of the recipient of SMS with country code
                  type: string
              required:
                - telstra_client_id
                - telstra_client_secret
                - to
              type: object
              x-examples:
                Example 1:
                  telstra_client_id: "123456"
                  telstra_client_secret: abcdef
                  to: "+911122334455"
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: testSiteWlanTelstraSetup
      tags:
        - Sites Wlans
  /api/v1/utils/test_twilio:
    post:
      description: |-
        Allows validation of twilio setup
        In case of success, a text message confirming successful setup should be received. In case of error, twilio error code and message are returned.
      operationId: testSiteWlanTwilioSetup
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  from: "+185051234567"
                  to: "+19999999999"
                  twilio_auth_token: 2135be04736a1a0a314bce432d61721a
                  twilio_sid: AC5f4366878d193fb4865ab151739999eb
            schema:
              properties:
                from:
                  description: One of the numbers you have in your Twilio account
                  type: string
                to:
                  description: Phone number of the recipient of SMS
                  type: string
                twilio_auth_token:
                  description: Auth Token associated with twilio account
                  type: string
                twilio_sid:
                  description: Twilio Account SID
                  type: string
              required:
                - twilio_sid
                - twilio_auth_token
                - from
                - to
              type: object
        description: Request Body
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
        "401":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Authentication credentials were not provided.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                Permission Denied:
                  value:
                    detail: You do not have permission to perform this action.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Permission Denied
        "404":
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    detail: Not found.
              schema:
                properties:
                  detail:
                    type: string
                type: object
          description: Not found. The API endpoint doesn't exist or resource doesn't exist
      summary: testSiteWlanTwilioSetup
      tags:
        - Sites Wlans
  /webhook_example/_alarm_:
    parameters: []
    post:
      description: |-
        Webhook sample for `alarm` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: alarms
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - aps:
                        - string
                      bssids:
                        - string
                      count: 0
                      event_id: a7a26ff2-e851-45b6-9634-d595f45458b7
                      for_site: true
                      id: 489f6eca-6276-4993-bfeb-c3cbbbba6f08
                      last_seen: 0
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      ssids:
                        - string
                      timestamp: 0
                      type: string
                      update: true
                  topic: alarms
            schema:
              $ref: "#/components/schemas/webhook_alarms"
        description: |-
          **N.B.**: Fields like `aps`, `bssids`, `ssids` are event specific. They are relevant to this event type ( rogue-ap-detected). For a different event type, different fields may be sent. These don’t contain all affected entities and are representative samples of entities (capped at 10). For marvis action related events, we expose `details` to include more event specific details.

          Events specific fields for other alarm event type can be found with API https://api.mist.com/api/v1/const/alarm_defs, under “fields” array of /alarm_defs response object.
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: alarms
      tags:
        - Webhook Samples
  /webhook_example/_asset_raw_:
    parameters: []
    post:
      description: |-
        Webhook sample for `asset_raw` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages

        **will be deprecated after 03/31/2024**
      operationId: assetRaw
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - asset_id: b4695157-0d1d-4da0-8f9e-5c53149389e4
                      beam: 0
                      device_id: 3bafab7b-4400-4bcf-8e6e-09f954699940
                      ibeacon_major: 0
                      ibeacon_minor: 0
                      ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                      mac: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      mfg_company_id: 0
                      mfg_data: string
                      rssi: 0
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      timestamp: 0
                  topic: asset-raw
            schema:
              $ref: "#/components/schemas/webhook_asset_raw"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: assetRaw
      tags:
        - Webhook Samples
  /webhook_example/_audit_:
    parameters: []
    post:
      description: |
        Webhook sample for `audit` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: audits
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - admin_name: string
                      device_id: 3bafab7b-4400-4bcf-8e6e-09f954699940
                      id: 488f6eca-6276-4993-bfeb-d3cbbbba6f08
                      message: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      src_ip: string
                      timestamp: 0
                  topic: audits
            schema:
              $ref: "#/components/schemas/webhook_audits"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: audits
      tags:
        - Webhook Samples
  /webhook_example/_client_join_:
    parameters: []
    post:
      description: |
        Webhook sample for `client_join` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: clientJoin
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - ap: string
                      ap_name: string
                      band: string
                      bssid: string
                      connect: 0
                      connect_float: 0
                      mac: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      rssi: 0
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      site_name: string
                      ssid: string
                      timestamp: 0
                      version: 0
                      wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
                  topic: client-join
            schema:
              $ref: "#/components/schemas/webhook_client_join"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: clientJoin
      tags:
        - Webhook Samples
  /webhook_example/_client_sessions_:
    parameters: []
    post:
      description: |
        Webhook sample for `client_sessions` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: clientSessions
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - ap: string
                      ap_name: string
                      band: string
                      bssid: string
                      client_family: string
                      client_manufacture: string
                      client_model: string
                      client_os: string
                      connect: 0
                      connect_float: 0
                      disconnect: 0
                      disconnect_float: 0
                      duration: 0
                      mac: string
                      next_ap: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      rssi: 0
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      site_name: string
                      ssid: string
                      termination_reason: 0
                      timestamp: 0
                      version: 0
                      wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
                  topic: client-sessions
            schema:
              $ref: "#/components/schemas/webhook_client_sessions"
      responses:
        "200":
          $ref: "#/components/responses/OK"
        "400":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: The API endpoint exists but its syntax/payload is incorrect, detail may be given
      summary: clientSessions
      tags:
        - Webhook Samples
  /webhook_example/_device_events_:
    parameters: []
    post:
      description: |
        Webhook sample for `device_events` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: deviceEvents
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - ap: string
                      ap_name: string
                      audit_id: 78c04fa6-cfb4-46a0-9aa5-3681ba4f3897
                      device_name: string
                      device_type: ap
                      ev_type: notice
                      mac: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      reason: string
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      site_name: string
                      text: string
                      timestamp: 0
                      type: string
                  topic: device-events
            schema:
              $ref: "#/components/schemas/webhook_device_events"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: deviceEvents
      tags:
        - Webhook Samples
  /webhook_example/_device_updowns_:
    parameters: []
    post:
      description: |
        Webhook sample for `device_updowns` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: deviceUpDown
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - ap: string
                      ap_name: string
                      for_site: true
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      site_name: string
                      timestamp: 0
                      type: string
                  topic: device-updowns
            schema:
              $ref: "#/components/schemas/webhook_device_updowns"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: deviceUpDown
      tags:
        - Webhook Samples
  /webhook_example/_discovered_raw_rssi_:
    parameters: []
    post:
      description: |
        Webhook sample for `discovered-raw-rssi` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: discovered-raw-rssi
      requestBody:
        content:
          application/json:
            examples:
              Example 1:
                value:
                  events:
                    - ap_loc:
                        - 0
                      beam: 0
                      device_id: 3bafab7b-4400-4bcf-8e6e-09f954699940
                      ibeacon_major: 0
                      ibeacon_minor: 0
                      ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                      is_asset: true
                      mac: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      mfg_company_id: string
                      mfg_data: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      rssi: 0
                      service_packets:
                        - service_data: string
                          service_uuid: 7138cc00-c611-4dec-a05e-5c4b1cae13c0
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      timestamp: 0
                  topic: string
            schema:
              $ref: "#/components/schemas/webhook_discovered_raw_rssi"
        description: ""
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: discovered-raw-rssi
      tags:
        - Webhook Samples
  /webhook_example/_location_:
    parameters: []
    post:
      description: |
        Webhook sample for `location` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: location
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - battery_voltage: 0
                      eddystone_uid_instance: string
                      eddystone_uid_namespace: string
                      eddystone_url_url: string
                      ibeacon_major: 0
                      ibeacon_minor: 0
                      ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                      id: 487f6eca-6276-4993-bfeb-e3cbbbba6f08
                      mac: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      mfg_company_id: 0
                      mfg_data: string
                      name: string
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      timestamp: 0
                      type: string
                      x: 0
                      y: 0
                  topic: location
            schema:
              $ref: "#/components/schemas/webhook_location"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: location
      tags:
        - Webhook Samples
  /webhook_example/_occupancy_alerts_:
    parameters: []
    post:
      description: |
        Webhook sample for `occupancy_alerts` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: occupancyAlerts
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - alert_events:
                        - current_occupancy: 0
                          map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                          occupancy_limit: 0
                          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                          timestamp: 0
                          type: COMPLIANCE-VIOLATION
                          zone_id: 4495020a-236f-46e0-9453-e3f9cc6476f4
                          zone_name: string
                      for_site: true
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      site_name: string
                  topic: occupancy-alerts
            schema:
              $ref: "#/components/schemas/webhook_occupancy_alerts"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: occupancyAlerts
      tags:
        - Webhook Samples
  /webhook_example/_ping_:
    parameters: []
    post:
      description: |
        Webhook sample for `ping` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: ping
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - id: 487f6eca-6276-4993-bfeb-f3cbbbba6f08
                      name: string
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      timestamp: 0
                  topic: ping
            schema:
              $ref: "#/components/schemas/webhook_ping"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: ping
      tags:
        - Webhook Samples
  /webhook_example/_sdkclient_scan_data:
    parameters: []
    post:
      description: |
        Webhook sample for `sdkclient_scan_data` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: sdkclientScanData
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - connection_ap: 5c5b352f587e
                      connection_band: "2.4"
                      connection_bssid: 5c5b352b51b4
                      connection_channel: 11
                      connection_rssi: -87
                      last_seen: 1592333828
                      mac: 70ef0071535f
                      scan_data:
                        - ap: 5c5b352f587e
                          band: "2.4"
                          bssid: 5c5b352b51b4
                          channel: 11
                          rssi: -87
                          ssid: mist-wifi
                          timestamp: 1592333828
                        - ap: 5c5b352f587e
                          band: "5"
                          bssid: 5c5b352b51b8
                          channel: 36
                          rssi: -75
                          ssid: mist-wifi
                          timestamp: 1592333828
                      site_id: d761985e-49b1-4506-88e9-e0368a05c301
                  topic: sdkclient-scan-data
            schema:
              $ref: "#/components/schemas/webhook_sdkclient-scan-data"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: sdkclientScanData
      tags:
        - Webhook Samples
  /webhook_example/_zone_:
    parameters: []
    post:
      description: |
        Webhook sample for `zone` topic

        **Note**: The server host will be your own server FQDN where the Mist Cloud is sending the webhook messages
      operationId: zone
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  events:
                    - asset_id: b4695157-0d1d-4da0-8f9e-5c53149389e4
                      id: 485f6eca-6276-4993-bfeb-54cbbbba6f08
                      mac: string
                      map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                      name: string
                      site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                      timestamp: 0
                      trigger: enter
                      type: string
                      zone_id: 4495020a-236f-46e0-9453-e3f9cc6476f4
                  topic: zone
            schema:
              $ref: "#/components/schemas/webhook_zone"
      responses:
        "200":
          $ref: "#/components/responses/OK"
      summary: zone
      tags:
        - Webhook Samples
components:
  parameters:
    admin_id:
      in: path
      name: admin_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    alarm_id:
      in: path
      name: alarm_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    alarmtemplate_id:
      in: path
      name: alarmtemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    apitoken_id:
      in: path
      name: apitoken_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    aptemplate_id:
      in: path
      name: aptemplate_id
      required: true
      schema:
        format: uuid
        type: string
    asset_id:
      in: path
      name: asset_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    assetfilter_id:
      in: path
      name: assetfilter_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    beacon_id:
      in: path
      name: beacon_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    client_mac:
      in: path
      name: client_mac
      required: true
      schema:
        example: 0000000000ab
        pattern: ^[0-9a-fA-F]{12}$
        type: string
    country_code:
      description: country code, in two-character
      in: query
      name: country_code
      schema:
        example: US
        pattern: ^[a-zA-Z]{2}$
        type: string
    device_id:
      in: path
      name: device_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    device_mac:
      in: path
      name: device_mac
      required: true
      schema:
        example: 0000000000ab
        pattern: ^[0-9a-fA-F]{12}$
        type: string
    deviceprofile_id:
      in: path
      name: deviceprofile_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    duration:
      description: |-
        For historical stats and/or logs where time range is needed, you can specify the time range in a few different ways:
          * ?start=1430000000&end=1430864000	specify the start / end
          * ?end=1430864000&duration=1d	specify end time and duration
          * ?duration=1d	specify duration, end will be now() in seconds
      in: query
      name: duration
      required: false
      schema:
        default: 1d
        example: 10m
        type: string
    end:
      in: query
      name: end
      schema:
        default: 0
        minimum: 0
        type: integer
    evpn_topology_id:
      in: path
      name: evpn_topology_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    gatewaytemplate_id:
      in: path
      name: gatewaytemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    guest_mac:
      in: path
      name: guest_mac
      required: true
      schema:
        example: 0000000000ab
        pattern: ^[0-9a-fA-F]{12}$
        type: string
    image_name:
      in: path
      name: image_name
      required: true
      schema:
        type: string
    interval:
      description: Aggregation works by giving a time range plus interval (e.g. 1d, 1h, 10m) where aggregation function would be applied to.
      in: query
      name: interval
      required: false
      schema:
        example: 10m
        type: string
    invite_id:
      in: path
      name: invite_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    ip:
      in: query
      name: ip address
      required: false
      schema:
        example: 192.168.1.1
        format: ipv4
        type: string
    limit:
      in: query
      name: limit
      required: false
      schema:
        default: 100
        minimum: 0
        type: integer
    map_id:
      in: path
      name: map_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    metric:
      description: see /api/v1/const/insight_metrics for available metrics
      in: path
      name: metric
      required: true
      schema:
        type: string
    msp_id:
      in: path
      name: msp_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    mxcluster_id:
      in: path
      name: mxcluster_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    mxedge_id:
      in: path
      name: mxedge_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    mxtunnel_id:
      in: path
      name: mxtunnel_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    nacrule_id:
      in: path
      name: nacrule_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    nactag_id:
      in: path
      name: nactag_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    name:
      in: query
      name: name
      required: false
      schema:
        default: ""
        type: string
    network_id:
      in: path
      name: network_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    networktemplate_id:
      in: path
      name: networktemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    org_id:
      in: path
      name: org_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    orggroup_id:
      in: path
      name: orggroup_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    page:
      in: query
      name: page
      required: false
      schema:
        default: 1
        minimum: 1
        type: integer
    pcap_id:
      in: path
      name: pcap_id
      required: true
      schema:
        format: uuid
        type: string
    psk_id:
      description: PSK ID
      in: path
      name: psk_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    psk_id_query:
      description: PSK ID
      in: query
      name: psk_id
      required: false
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    pskportal_id:
      in: path
      name: pskportal_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    q:
      description: search string
      in: query
      name: q
      schema:
        default: ""
        example: search
        type: string
    resolution:
      in: query
      name: resolution
      schema:
        default: default
        enum:
          - default
          - fine
        type: string
    rfdiag_id:
      in: path
      name: rfdiag_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    rftemplate_id:
      in: path
      name: rftemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    rogue_bssid:
      in: path
      name: rogue_bssid
      required: true
      schema:
        example: 0000000000ab
        pattern: ^[0-9a-fA-F]{12}$
        type: string
    rogue_type:
      in: query
      name: type
      schema:
        enum:
          - honeypot
          - lan
          - others
          - spoof
        type: string
    rssizone_id:
      in: path
      name: rssizone_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    sdkclient_id:
      in: path
      name: sdkclient_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    sdkinvite_id:
      in: path
      name: sdkinvite_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    sdktemplate_id:
      in: path
      name: sdktemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    secpolicy_id:
      in: path
      name: secpolicy_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    secret:
      in: path
      name: secret
      required: true
      schema:
        type: string
    service_id:
      in: path
      name: service_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    servicepolicy_id:
      in: path
      name: servicepolicy_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    site_id:
      in: path
      name: site_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    site_name:
      in: path
      name: site_name
      required: true
      schema:
        type: string
    sitegroup_id:
      in: path
      name: sitegroup_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    sitetemplate_id:
      in: path
      name: sitetemplate_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    sso_id:
      in: path
      name: sso_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    ssorole_id:
      in: path
      name: ssorole_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    start:
      in: query
      name: start
      schema:
        default: 0
        minimum: 0
        type: integer
    template_id:
      in: path
      name: template_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    ticket_id:
      in: path
      name: ticket_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    token:
      in: path
      name: token
      required: true
      schema:
        type: string
    uisetting_id:
      in: path
      name: uisetting_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    upgrade_id:
      in: path
      name: upgrade_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    vbeacon_id:
      in: path
      name: vbeacon_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    vpn_id:
      in: path
      name: vpn_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    webhook_id:
      in: path
      name: webhook_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    wlan_id:
      in: path
      name: wlan_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    wxrules_id:
      in: path
      name: wxrules_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    wxtag_id:
      in: path
      name: wxtag_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    wxtunnel_id:
      in: path
      name: wxtunnel_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    zone_id:
      in: path
      name: zone_id
      required: true
      schema:
        example: 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    zone_type:
      in: path
      name: zone_type
      required: true
      schema:
        enum:
          - zones
          - rssizones
        type: string
  responses:
    Admin:
      content:
        application/json:
          examples:
            example-1:
              value:
                admin_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                email: user@example.com
                first_name: string
                last_name: string
                privileges:
                  - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    msp_name: string
                    name: string
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    org_name: string
                    orggroup_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    role: admin
                    scope: org
                    site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          schema:
            $ref: "#/components/schemas/admin"
      description: OK
    AdminsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - admin_id: 456b7016-a916-a4b1-78dd-72b947c152b7
                  email: jsmith@mycorp.org
                  first_name: Joe
                  last_name: Smith
                  privileges:
                    - role: admin
                      scope: msp
                    - org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                    - orggroup_id: 507f1bab-13ba-73e2-f291-2bcb8d1362b0
                      role: read
                      scope: orggroup
            example-2:
              value:
                - admin_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  email: user@example.com
                  first_name: string
                  last_name: string
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          schema:
            items:
              $ref: "#/components/schemas/admin"
            minItems: 0
            type: array
            uniqueItems: true
      description: OK
    AlarmsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                next: string
                results:
                  - ack_admin_id: 6603c94c-eaf9-4014-9edf-b9f8eed6b183
                    ack_admin_name: string
                    acked: true
                    acked_time: 0
                    aps:
                      - string
                    bssids:
                      - string
                    count: 0
                    gateways:
                      - string
                    group: string
                    hostnames:
                      - string
                    id: 483f6eca-6276-4993-bfeb-56cbbbba6f08
                    last_seen: 0
                    note: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    severity: string
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    ssids:
                      - string
                    switches:
                      - string
                    timestamp: 0
                    type: string
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/alarm"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - total
              - results
            type: object
      description: OK
    Alarmtemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                delivery:
                  additional_emails:
                    - string
                  enabled: true
                  to_org_admins: true
                  to_site_admins: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                rules:
                  adhoc_network:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  air_magnet_scan:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  ap_offline:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  bad_cable:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  beacon_flood:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  bssid_spoofing:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  device_down:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  device_restarted:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  dhcp_failure:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  disassociation_flood:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  dot1x_failure:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  eap_dictionary_attack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  eap_failure_injection:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  eap_handshake_flood:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  eap_spoofed_success:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  eapol_logoff_attack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  essid_jack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  excessive_client:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  excessive_eapol_start:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  gateway_down:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  gw_bad_cable:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  gw_negotiation_mismatch:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  honeypot_ssid:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  krack_attack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  missing_vlan:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  monkey_jack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  negotiation_mismatch:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  non_compliant:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  out_of_sequence:
                    enabled: true
                  psk_failure:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  repeated_auth_failures:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  rogue_ap:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  rogue_client:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  secpolicy_violation:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  ssid_injection:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  switch_down:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  tkip_icv_attack:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  vendor_ie_missing:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  watched_station:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
                  zero_ssid_association:
                    delivery:
                      additional_emails:
                        - string
                      enabled: true
                      to_org_admins: true
                      to_site_admins: true
                    enabled: true
          schema:
            $ref: "#/components/schemas/alarmtemplate"
      description: OK
    AlarmtemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  delivery:
                    additional_emails:
                      - string
                    enabled: true
                    to_org_admins: true
                    to_site_admins: true
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  rules:
                    adhoc_network:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    air_magnet_scan:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    ap_offline:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    bad_cable:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    beacon_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    bssid_spoofing:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    device_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    device_restarted:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    dhcp_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    disassociation_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    dot1x_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_dictionary_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_failure_injection:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_handshake_flood:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eap_spoofed_success:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    eapol_logoff_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    essid_jack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    excessive_client:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    excessive_eapol_start:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gateway_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gw_bad_cable:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    gw_negotiation_mismatch:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    honeypot_ssid:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    krack_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    missing_vlan:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    monkey_jack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    negotiation_mismatch:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    non_compliant:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    out_of_sequence:
                      enabled: true
                    psk_failure:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    repeated_auth_failures:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    rogue_ap:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    rogue_client:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    secpolicy_violation:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    ssid_injection:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    switch_down:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    tkip_icv_attack:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    vendor_ie_missing:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    watched_station:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
                    zero_ssid_association:
                      delivery:
                        additional_emails:
                          - string
                        enabled: true
                        to_org_admins: true
                        to_site_admins: true
                      enabled: true
          schema:
            items:
              $ref: "#/components/schemas/alarmtemplate"
            type: array
      description: OK
    AnomalyMetrics:
      content:
        application/json:
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              page:
                type: integer
              results:
                items:
                  $ref: "#/components/schemas/anomaly"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - start
              - end
              - limit
              - page
              - results
            type: object
      description: OK
    Apitoken:
      content:
        application/json:
          examples:
            Org API Token:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                key: string
                last_used: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                privileges:
                  - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    msp_name: string
                    name: string
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    org_name: string
                    orggroup_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    role: admin
                    scope: org
                    site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
            User API Token:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                key: string
                last_used: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/apitoken"
      description: OK
    ApitokensArray:
      content:
        application/json:
          examples:
            Org API Tokens:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  key: string
                  last_used: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  privileges:
                    - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      msp_name: string
                      name: string
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      org_name: string
                      orggroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      role: admin
                      scope: org
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sitegroup_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            User API Tokens:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  key: string
                  last_used: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            items:
              $ref: "#/components/schemas/apitoken"
            type: array
      description: OK
    Aptemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                ap_matching:
                  enabled: true
                  rules:
                    - match_model: string
                      name: string
                      port_config:
                        property1:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                          radsec:
                            enabled: true
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                        property2:
                          disabled: true
                          dynamic_vlan:
                            default_vlan_id: 0
                            enabled: true
                            type: string
                            vlans:
                              property1: string
                              property2: string
                          enable_mac_auth: true
                          forwarding: all
                          mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                          mxtunnel_name: string
                          port_auth: none
                          port_vlan_id: 0
                          radius_config:
                            acct_interim_interval: 0
                            acct_servers:
                              - host: string
                                port: 1813
                                secret: string
                            auth_servers:
                              - host: string
                                port: 1812
                                secret: string
                            auth_servers_retries: 3
                            auth_servers_timeout: 5
                          radsec:
                            enabled: true
                            server_name: string
                            servers:
                              - host: string
                                port: 0
                            use_mxedge: true
                          vlan_id: 0
                          vland_ids:
                            - 0
                          wxtunnel_id: string
                          wxtunnel_remote_id: string
                created_time: 0
                for_site: true
                id: 482f6eca-6276-4993-bfeb-57cbbbba6f08
                modified_time: 0
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          schema:
            $ref: "#/components/schemas/aptemplate"
      description: Example response
    AptemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - ap_matching:
                    enabled: true
                    rules:
                      - match_model: string
                        name: string
                        port_config:
                          property1:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                          property2:
                            additional_vlan_ids:
                              - 0
                            disabled: true
                            dynamic_vlan:
                              default_vlan_id: 0
                              enabled: true
                              type: string
                              vlans:
                                property1: string
                                property2: string
                            enable_mac_auth: true
                            forwarding: all
                            mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                            mxtunnel_name: string
                            port_auth: none
                            port_vlan_id: 0
                            radius_config:
                              acct_interim_interval: 0
                              acct_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1813
                                  secret: string
                              auth_servers:
                                - host: string
                                  keywrap_enabled: true
                                  keywrap_format: string
                                  keywrap_kek: string
                                  keywrap_mack: string
                                  port: 1812
                                  secret: string
                              auth_servers_retries: 3
                              auth_servers_timeout: 5
                              coa_enabled: false
                              coa_port: 3799
                              network: string
                              source_ip: string
                            radsec:
                              enabled: true
                              idle_timeout: 0
                              server_name: string
                              servers:
                                - host: string
                                  port: 0
                              use_mxedge: true
                            vlan_id: 0
                            vland_ids:
                              - 0
                            wxtunnel_id: string
                            wxtunnel_remote_id: string
                  created_time: 0
                  for_site: true
                  id: 497f6eca-6276-4998-bfeb-53cbbbba6f08
                  modified_time: 0
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  wifi:
                    cisco_enabled: true
                    disable_11k: false
                    disable_radios_when_power_constrained: true
                    enable_arp_spoof: true
                    enable_shared_radio_scanning: false
                    enabled: true
                    locate_connected: false
                    locate_unconnected: false
                    mesh_allow_dfs: false
                    mesh_enable_crm: true
                    mesh_enabled: true
                    proxy_arp: false
          schema:
            items:
              $ref: "#/components/schemas/aptemplate"
            type: array
      description: Example response
    Asset:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                mac: string
                map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                tag_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          schema:
            $ref: "#/components/schemas/asset"
      description: OK
    AssetOfInterestArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - _checkpoint_prep: 0
                  _checkpoint_preparer: 0
                  _checkpoint_scan: 0
                  _id: string
                  _timestamp: 0
                  _ttl: 0
                  ap_mac: string
                  beam: 0
                  by: string
                  curr_site: string
                  device_name: string
                  id: string
                  last_seen: 0
                  mac: string
                  manufacture: string
                  map_id: string
                  name: string
                  rssi: 0
          schema:
            items:
              $ref: "#/components/schemas/AssetOfInterest"
            type: array
      description: Example response
    AssetStats:
      content:
        application/json:
          examples:
            example-1:
              value:
                battery_voltage: 0
                eddystone_uid_instance: string
                eddystone_uid_namespace: string
                eddystone_url_url: string
                ibeacon_major: 0
                ibeacon_minor: 0
                ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                last_seen: 0
                mac: string
                map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                name: string
                rssizones:
                  - id: 480f6eca-6276-4993-bfeb-59cbbbba6f08
                    since: 0
                x: 0
                y: 0
                zones:
                  - id: 479f6eca-6276-4993-bfeb-5acbbbba6f08
                    since: 0
          schema:
            $ref: "#/components/schemas/stats_asset"
      description: OK
    Assetfilter:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                disasbled: true
                eddystone_uid_namespace: string
                eddystone_url: string
                for_site: true
                ibeacon_major: 0
                ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                mfg_company_id: 0
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/asset_filter"
      description: OK
    AssetfiltersArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/asset_filter"
            type: array
      description: OK
    AssetsArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/asset"
            type: array
      description: OK
    AssetsArrayStats:
      content:
        application/json:
          examples:
            example-1:
              value:
                - battery_voltage: 0
                  eddystone_uid_instance: string
                  eddystone_uid_namespace: string
                  eddystone_url_url: string
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                  last_seen: 0
                  mac: string
                  map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                  name: string
                  rssizones:
                    - id: 478f6eca-6276-4993-bfeb-5bcbbbba6f08
                      since: 0
                  x: 0
                  y: 0
                  zones:
                    - id: 477f6eca-6276-4993-bfeb-5ccbbbba6f08
                      since: 0
          schema:
            items:
              $ref: "#/components/schemas/stats_asset"
            type: array
      description: OK
    AssetsArrayStatsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                next: string
                results:
                  - battery_voltage: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_url: string
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                    last_seen: 0
                    mac: string
                    map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                    name: string
                    rssizones:
                      - id: 476f6eca-6276-4993-bfeb-5dcbbbba6f08
                        since: 0
                    x: 0
                    y: 0
                    zones:
                      - id: 475f6eca-6276-4993-bfeb-5ecbbbba6f08
                        since: 0
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/stats_asset"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - total
              - results
            type: object
      description: OK
    Beacon:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                eddystone_instance: string
                eddystone_namespace: string
                eddystone_url: string
                ibeacon_major: 0
                ibeacon_minor: 0
                ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                mac: string
                map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                power: 0
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                type: eddystone-uid
                x: 0
                y: 0
          schema:
            $ref: "#/components/schemas/beacon"
      description: OK
    BeaconsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  eddystone_instance: string
                  eddystone_namespace: string
                  eddystone_url: string
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mac: string
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  power: 0
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  type: eddystone-uid
                  x: 0
                  y: 0
          schema:
            items:
              $ref: "#/components/schemas/beacon"
            minItems: 0
            type: array
      description: OK
    BgpStatsArraySearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1619518989.4989712
                limit: 10
                results:
                  - as: 65000
                    mac: 020001c04668
                    neighbor: 15.8.3.5
                    neighbor_mac: c15353123096
                    org_id: 0c160b7f-1027-4cd1-923b-744534c4b070
                    rx_pkts: 63366
                    rx_routes: 60
                    site_id: 725a8d34-a126-4f2c-b990-d1219421cb75
                    state: established
                    tx_pkts: 1735
                    uptime: 31355
                    vrf_name: default
                start: 1619518689.4989705
                total: 1
          schema:
            properties:
              end:
                type: number
              limit:
                type: integer
              results:
                items:
                  $ref: "#/components/schemas/stats_bgp"
                type: array
              start:
                type: number
              total:
                type: integer
            type: object
      description: Example response
    CallEventsArraySearch:
      content:
        application/json:
          examples:
            Example 1:
              value:
                end: 1674819324
                limit: 10
                results:
                  - app: zoom
                    audio_quality: good
                    meeting_id: "87609329850"
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    reason: Host ended the meeting.
                    screen_share_quality: good
                    site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                    timestamp: 1674199827
                    type: CLIENT_LEFT_CALL
                    video_quality: good
                    wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                  - app: zoom
                    meeting_id: "87609329850"
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    reason: Network connection error.
                    site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                    timestamp: 1674199827
                    type: CLIENT_DISCONNECTED_FROM_CALL
                    wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                  - app: zoom
                    meeting_id: "87609329850"
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                    timestamp: 1674199827
                    type: CLIENTS_JOINED_CALL
                    wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                start: 1674153000
                total: 3
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              results:
                items:
                  $ref: "#/components/schemas/event_call"
                type: array
              start:
                type: integer
              total:
                type: integer
            type: object
            x-examples:
              Example 1:
                end: 1674819324
                limit: 10
                results:
                  - app: zoom
                    meeting_id: "87609329850"
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    reason: Network connection error.
                    site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
                    timestamp: 1674199827
                    type: CLIENT_DISCONNECTED_FROM_CALL
                    wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
                start: 1674153000
                total: 1
      description: Example response
    CallStatsArray:
      content:
        application/json:
          examples: {}
          schema:
            properties:
              end:
                type: number
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/stats_call"
                type: array
              start:
                type: number
              total:
                type: integer
            type: object
      description: Example response
    Certificate:
      content:
        application/json:
          examples:
            example-1:
              value:
                cert: |-
                  -----BEGIN CERTIFICATE-----
                  MIIowDQYJKoZIhvcNAQELBQE
                  -----END CERTIFICATE-----
          schema:
            properties:
              cert:
                type: string
            required:
              - cert
            type: object
      description: OK
    ClientEventsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1513176951
                limit: 10
                results:
                  - ap: 5c5b350eb31b
                    band: "5"
                    bssid: 5c5b350918f1
                    channel: 149
                    proto: ac
                    ssid: Guest
                    text: 'Status code 0 "Successful" '
                    timestamp: 1513358874.667
                    type: CLIENT_DNS_OK
                    type_code: 15
                    wlan_id: be22bba7-8e22-e1cf-5185-b880816fe2cf
                start: 1512572151
                total: 1
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/events_client"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - total
              - results
            type: object
      description: OK
    ClientSessionsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1513177200
                limit: 10
                results:
                  - ap: 5c5b350e0262
                    band: "5"
                    client_manufacture: Apple
                    connect: 1565208388
                    disconnect: 1565208448
                    duration: 60.09423865
                    mac: b019c66c8348
                    org_id: 3139f2c2-fac6-11e5-8156-0242ac110006
                    site_id: 70e0f468-fc13-11e5-85ad-0242ac110008
                    ssid: Dummy WLAN 2
                    tags:
                      - disassociate
                    timestamp: 1565208448.662
                    wlan_id: 99bb4c74-f954-4f36-b844-6b030faffabc
                start: 1511967600
                total: 100
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    ap:
                      readOnly: true
                      type: string
                    band:
                      readOnly: true
                      type: string
                    client_manufacture:
                      readOnly: true
                      type: string
                    connect:
                      readOnly: true
                      type: number
                    disconnect:
                      readOnly: true
                      type: number
                    duration:
                      readOnly: true
                      type: number
                    mac:
                      readOnly: true
                      type: string
                    org_id:
                      format: uuid
                      readOnly: true
                      type: string
                    site_id:
                      format: uuid
                      readOnly: true
                      type: string
                    ssid:
                      readOnly: true
                      type: string
                    tags:
                      items:
                        type: string
                      readOnly: true
                      type: array
                    timestamp:
                      type: number
                    wlan_id:
                      format: uuid
                      type: string
                  required:
                    - ap
                    - band
                    - client_manufacture
                    - connect
                    - disconnect
                    - duration
                    - mac
                    - org_id
                    - site_id
                    - ssid
                    - timestamp
                    - wlan_id
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    ClientsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                results:
                  - ap: string
                    band: "24"
                    bssid: string
                    channel: 0
                    proto: a
                    ssid: string
                    text: string
                    timestamp: 0
                    type: string
                    type_code: 0
                    wlan_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/events_client"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - total
              - results
            type: object
      description: OK
    ConfigsHistorySearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1531862583
                limit: 10
                results:
                  - channel_24: 11
                    channel_5: 100
                    radio_macs:
                      - 5c5b352e000a
                      - 5c5b352e000b
                      - 5c5b352e000c
                    radios:
                      - band: "24"
                        channel: 11
                      - band: "5"
                        channel: 100
                    secpolicy_violated: false
                    ssids:
                      - test24
                      - test5
                    ssids_24:
                      - test24
                    ssids_5:
                      - test5
                    timestamp: 1531855856.643369
                    version: apfw-0.2.14754-cersei-75c8
                    wlans:
                      - auth: psk
                        bands:
                          - "24"
                        id: be22bba7-8e22-e1cf-5185-b880816fe2cf
                        ssid: test24
                        vlan_ids:
                          - "1"
                      - auth: psk
                        bands:
                          - "5"
                        id: f8c18724-4118-3487-811a-f98964988604
                        ssid: test5
                        vlan_ids:
                          - "1"
                start: 1531776183
                total: 1
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    channel_24:
                      type: integer
                    channel_5:
                      type: integer
                    radio_macs:
                      items:
                        type: string
                      type: array
                    radios:
                      items:
                        properties:
                          band:
                            type: string
                          channel:
                            type: integer
                        required:
                          - band
                          - channel
                        type: object
                      minItems: 1
                      type: array
                      uniqueItems: true
                    secpolicy_violated:
                      type: boolean
                    ssids:
                      items:
                        type: string
                      type: array
                    ssids_24:
                      items:
                        type: string
                      type: array
                    ssids_5:
                      items:
                        type: string
                      type: array
                    timestamp:
                      type: number
                    version:
                      type: string
                    wlans:
                      items:
                        properties:
                          auth:
                            type: string
                          bands:
                            items:
                              type: string
                            type: array
                          id:
                            format: uuid
                            type: string
                          ssid:
                            type: string
                          vlan_ids:
                            items:
                              type: string
                            type: array
                        required:
                          - auth
                          - id
                          - ssid
                        type: object
                      minItems: 1
                      type: array
                      uniqueItems: true
                  required:
                    - channel_24
                    - channel_5
                    - secpolicy_violated
                    - timestamp
                    - version
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    ConstApplications:
      content:
        application/json:
          examples:
            Example 1:
              value:
                - app_id: true
                  group: Emails
                  key: all-email
                  name: All Emails
                - app_id: true
                  category: Collaboration
                  group: Emails
                  key: gmail
                  name: Gmail
                  ssr_app_id: true
                - app_id: true
                  category: Collaboration
                  group: Emails
                  key: yahoo-mail
                  name: Yahoo Mail
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: FileSharing
                  group: File Sharing
                  key: dropbox
                  name: Dropbox
                  ssr_app_id: true
                - app_id: true
                  group: Online Backup
                  key: icloud-backup
                  name: iCloud backup
                - app_id: true
                  category: FileSharing
                  group: Peer 2 Peer
                  key: bit-torrent
                  name: BitTorrent
                  ssr_app_id: true
                - app_id: true
                  group: Social
                  key: all-social
                  name: All Socials
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: SocialMedia
                  group: Social
                  key: facebook
                  name: Facebook
                  ssr_app_id: true
          schema:
            items:
              properties:
                app_id:
                  type: boolean
                app_image_url:
                  type: string
                app_probe:
                  type: boolean
                group:
                  type: string
                key:
                  type: string
                name:
                  type: string
                signature_based:
                  type: boolean
                ssr_app_id:
                  type: boolean
              type: object
            type: array
            x-examples:
              Example 1:
                - app_id: true
                  group: Emails
                  key: all-email
                  name: All Emails
                - app_id: true
                  category: Collaboration
                  group: Emails
                  key: gmail
                  name: Gmail
                  ssr_app_id: true
                - app_id: true
                  category: Collaboration
                  group: Emails
                  key: yahoo-mail
                  name: Yahoo Mail
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: FileSharing
                  group: File Sharing
                  key: dropbox
                  name: Dropbox
                  ssr_app_id: true
                - app_id: true
                  group: Online Backup
                  key: icloud-backup
                  name: iCloud backup
                - app_id: true
                  category: FileSharing
                  group: Peer 2 Peer
                  key: bit-torrent
                  name: BitTorrent
                  ssr_app_id: true
                - app_id: true
                  group: Social
                  key: all-social
                  name: All Socials
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: SocialMedia
                  group: Social
                  key: facebook
                  name: Facebook
                  ssr_app_id: true
                - app_id: true
                  category: SocialMedia
                  group: Social
                  key: flickr
                  name: Flickr
                  ssr_app_id: true
                - app_id: true
                  group: Social
                  key: myspace
                  name: MySpace
                - app_id: true
                  category: SocialMedia
                  group: Social
                  key: pinterest
                  name: Pinterest
                  ssr_app_id: true
                - app_id: true
                  category: Collaboration
                  group: Social
                  key: snapchat
                  name: Snapchat
                  ssr_app_id: true
                - app_id: true
                  category: SocialMedia
                  group: Social
                  key: twitter
                  name: Twitter
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Social
                  key: slack
                  name: Slack
                  ssr_app_id: true
                - app_id: true
                  category: Recreation
                  key: yelp
                  name: Yelp
                  ssr_app_id: true
                - app_id: true
                  group: Videos and Music
                  key: all-video-music
                  name: All Video and Music
                - app_id: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: amazon-video
                  name: Amazon Video
                  ssr_app_id: true
                - app_id: true
                  group: Videos and Music
                  key: twitter video
                  name: Twitter Video
                - app_id: true
                  group: Videos and Music
                  key: periscope-stream
                  name: Periscope
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: ArtsAndEntertainment
                  group: Videos and Music
                  key: apple-audio
                  name: Apple Audio
                  ssr_app_id: true
                - app_id: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: hbo-go
                  name: HBO GO
                  ssr_app_id: true
                - category: StreamingMedia
                  group: Videos and Music
                  key: last-fm
                  name: last.fm
                  ssr_app_id: true
                - app_id: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: twitch
                  name: Twitch
                  ssr_app_id: true
                - category: Games
                  group: Videos and Music
                  key: mixer
                  name: Mixer
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: youtube
                  name: Youtube
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: vimeo
                  name: Vimeo
                  ssr_app_id: true
                - app_id: true
                  category: RemoteDesktop
                  group: Remote Desktop
                  key: teamviewer
                  name: TeamViewer
                  ssr_app_id: true
                - app_id: true
                  category: NewsAndReference
                  group: Wikimedia
                  key: wikipedia.org
                  name: Wikipedia
                  ssr_app_id: true
                - app_id: true
                  category: NewsAndReference
                  group: Dev Resources
                  key: stackoverflow
                  name: StackOverflow
                  ssr_app_id: true
                - app_id: true
                  category: Technology
                  group: Dev Resources
                  key: github
                  name: Github
                  ssr_app_id: true
                - app_id: true
                  category: SocialMedia
                  group: Social
                  key: linkedin
                  name: LinkedIn
                  ssr_app_id: true
                - app_id: true
                  category: Conferencing
                  group: Social
                  key: line
                  name: Line
                  ssr_app_id: true
                - app_id: true
                  category: Collaboration
                  group: Social
                  key: whatsapp
                  name: Whatsapp
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Conferencing
                  group: Voice/Video Conferencing
                  key: zoom
                  name: Zoom
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Conferencing
                  group: Voice/Video Conferencing
                  key: ms-teams
                  name: Microsoft Teams
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Voice/Video Conferencing
                  key: gotomeeting
                  name: GoToMeeting
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Conferencing
                  group: Voice/Video Conferencing
                  key: ringcentral
                  name: RingCentral
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Conferencing
                  group: Voice/Video Conferencing
                  key: webex
                  name: Webex
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  group: Voice/Video Conferencing
                  key: join.me
                  name: join.me
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: gsuite
                  name: GSuite
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: office365
                  name: Office365
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: okta
                  name: Okta
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: oracle
                  name: Oracle
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: sap
                  name: SAP
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Technology
                  group: Collaboration/Productivity
                  key: atlassian
                  name: Atlassian
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  group: Collaboration/Productivity
                  key: asana
                  name: Asana
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Infrastructure
                  group: Cloud Traffic
                  key: aws
                  name: AWS
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Streaming Services
                  key: disney-plus
                  name: Disney Plus
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: FileSharing
                  group: Collaboration/Productivity
                  key: box
                  name: Box
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Infrastructure
                  group: Cloud Traffic
                  key: azure
                  name: Microsoft Azure
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Infrastructure
                  group: Cloud Traffic
                  key: gcp
                  name: Google Cloud Platform
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: FileSharing
                  group: Cloud Traffic
                  key: icloud
                  name: Apple iCloud
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: netflix
                  name: Netflix
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: spotify
                  name: Spotify
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: pandora
                  name: Pandora
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: StreamingMedia
                  group: Videos and Music
                  key: hulu
                  name: Hulu
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: SocialMedia
                  group: Streaming Services
                  key: tiktok
                  name: TikTok
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  group: Streaming Services
                  key: amazon-prime
                  name: Amazon Prime
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: workday
                  name: Workday
                  ssr_app_id: true
                - app_id: true
                  app_image_url: ""
                  app_probe: true
                  category: Business
                  group: Collaboration/Productivity
                  key: service-now
                  name: ServiceNow
                  ssr_app_id: true
                - category: Advertisement
                  group: Collaboration/Productivity
                  key: salesforce
                  name: Salesforce
                  ssr_app_id: true
                - category: Business
                  group: Collaboration/Productivity
                  key: cookielaw
                  name: CookieLaw
                  ssr_app_id: true
                - app_id: true
                  category: NewsAndReference
                  group: Social
                  key: cnn
                  name: CNN
                  ssr_app_id: true
                - category: Advertisement
                  group: Cloud Traffic
                  key: outbrain
                  name: Outbrain
                  ssr_app_id: true
                - app_id: true
                  category: Sports
                  group: Videos and Music
                  key: espn
                  name: Espn
                  ssr_app_id: true
                - category: Networking
                  group: Collaboration/Productivity
                  key: zscaler
                  name: Zscaler
                  ssr_app_id: true
                - category: Security
                  group: Collaboration/Productivity
                  key: trustarc
                  name: TrustArc
                  ssr_app_id: true
                - category: ArtsAndEntertainment
                  group: Videos and Music
                  key: warnermedia
                  name: WarnerMedia
                  ssr_app_id: true
                - app_id: true
                  key: skype-business-voice
                  name: Skype For Business (Voice)
                  signature_based: true
                - app_id: true
                  key: skype-business-video
                  name: Skype For Business (Video)
                  signature_based: true
                - app_id: true
                  key: teams-video
                  name: Teams (Video)
                  signature_based: true
                - app_id: true
                  key: teams-voice
                  name: Teams (Voice)
                  signature_based: true
                - app_id: true
                  key: zoom-video
                  name: Zoom (Video)
                  signature_based: true
                - app_id: true
                  key: zoom-voice
                  name: Zoom (Voice)
                  signature_based: true
                - key: webex-video
                  name: Webex (Video)
                  signature_based: true
                - key: webex-voice
                  name: Webex (Voice)
                  signature_based: true
      description: Example response
    ConstDeviceModels:
      content:
        application/json:
          examples:
            Example 1:
              value:
                - alias: string
                  ap_type: string
                  band24:
                    max_clients: 0
                    max_power: 0
                    min_power: 0
                  band5:
                    max_clients: 0
                    max_power: 0
                    min_power: 0
                  band6:
                    max_clients: 0
                    max_power: 0
                    min_power: 0
                  ce_dfs_ok: true
                  cisco_pace: true
                  defaults:
                    _ports: string
                    property1: string
                    property2: string
                  description: string
                  disallowed_channels:
                    property1:
                      property1:
                        - 0
                      property2:
                        - 0
                    property2:
                      property1:
                        - 0
                      property2:
                        - 0
                  display: string
                  evolved_os: false
                  evpn_ri_type: string
                  experimental: false
                  extio:
                    property1:
                      default_dir: IN
                      input: true
                      output: true
                    property2:
                      default_dir: IN
                      input: true
                      output: true
                  fans_pluggable: true
                  fcc_dfs_ok: true
                  ha_node0_fpc: 0
                  ha_node1_fpc: 0
                  has_11ax: true
                  has_bgp: false
                  has_compass: true
                  has_ets: false
                  has_evpn: false
                  has_ext_ant: true
                  has_extio: true
                  has_fxp0: true
                  has_ha_control: false
                  has_ha_data: false
                  has_height: true
                  has_irb: false
                  has_module_port: true
                  has_poe_out: true
                  has_scanning_radio: true
                  has_selectable_radio: true
                  has_snapshot: true
                  has_usb: true
                  has_vble: true
                  has_vc: true
                  has_wifi_band24: true
                  has_wifi_band5: true
                  has_wifi_band6: true
                  irb_disabled_by_default: false
                  max_poe_out: 0
                  max_wlans: 0
                  model: string
                  modular: false
                  no_shaping_rate: false
                  number_fans: 0
                  oc_device: false
                  oob_interface: string
                  other_dfs_ok: true
                  outdoor: true
                  packet_action_drop_only: false
                  pic:
                    property1: string
                    property2: string
                  ports:
                    display: string
                    pci_address: string
                    speed: 0
                  radios:
                    property1: string
                    property2: string
                  shared_scanning_radio: true
                  sub_required: string
                  t128_device: false
                  type: gateway
                  unmanaged: true
                  vble:
                    beacon_rate: 0
                    beams: 0
                    power: 0
          schema:
            items:
              anyOf:
                - $ref: "#/components/schemas/const_device_ap"
                - $ref: "#/components/schemas/const_device_switch"
                - $ref: "#/components/schemas/const_device_gateway"
                - $ref: "#/components/schemas/const_device_unknown"
            type: array
      description: Example response
    Device:
      content:
        application/json:
          examples:
            ap:
              value:
                aeroscout:
                  enabled: false
                  host: string
                  locate_connected: true
                ble_config:
                  beacon_enabled: true
                  beacon_rate: 0
                  beacon_rate_mode: default
                  beam_disabled:
                    - 0
                  eddystone_uid_adv_power: -100
                  eddystone_uid_beams: string
                  eddystone_uid_enabled: true
                  eddystone_uid_freq_msec: 0
                  eddystone_uid_instance: string
                  eddystone_uid_namespace: string
                  eddystone_url_adv_power: 0
                  eddystone_url_beams: string
                  eddystone_url_enabled: true
                  eddystone_url_freq_msec: 0
                  eddystone_url_url: string
                  ibeacon_adv_power: -100
                  ibeacon_beams: string
                  ibeacon_enabled: false
                  ibeacon_freq_msec: 0
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                  power: 9
                  power_mode: string
                created_time: 0
                deviceprofile_id: 366a0f23-8d77-404c-8908-b2e629ba0782
                disable_eth1: false
                disable_eth2: false
                disable_eth3: false
                disable_module: false
                for_site: true
                height: 0
                id: 474f6eca-6276-4993-bfeb-5fcbbbba6f08
                image1_url: string
                image2_url: string
                image3_url: string
                iot_config:
                  A1:
                    enabled: false
                    name: string
                    output: true
                    pullup: internal
                    value: 0
                  A2:
                    enabled: false
                    name: string
                    output: true
                    pullup: internal
                    value: 0
                  A3:
                    enabled: false
                    name: string
                    output: true
                    pullup: internal
                    value: 0
                  A4:
                    enabled: false
                    name: string
                    output: true
                    pullup: internal
                    value: 0
                  DI1:
                    enabled: false
                    name: string
                    pullup: internal
                  DI2:
                    enabled: false
                    name: string
                    pullup: internal
                  DO:
                    enabled: false
                    name: string
                    output: true
                    pullup: internal
                    value: 0
                ip_config:
                  dns:
                    - string
                  dns_suffix:
                    - string
                  gateway: 192.168.0.1
                  gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  ip: 192.168.0.1
                  ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  mtu: 0
                  netmask: 192.168.0.1
                  netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  type: static
                  type6: static
                  vlan_id: 1
                led:
                  brightness: 0
                  enabled: true
                map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                mesh:
                  enabled: false
                  group: 0
                  role: base
                modified_time: 0
                name: string
                notes: string
                ntp_servers:
                  - string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                orientation: 0
                orientation_overwrite: true
                poe_passthrough: false
                port_config:
                  property1:
                    disabled: true
                    dynamic_vlan:
                      default_vlan_id: 0
                      enabled: true
                      type: string
                      vlans:
                        property1: string
                        property2: string
                    enable_mac_auth: true
                    forwarding: all
                    mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                    mxtunnel_name: string
                    port_auth: none
                    port_vlan_id: 0
                    radius_config:
                      acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      auth_servers_retries: 3
                      auth_servers_timeout: 5
                      coa_enabled: false
                      coa_port: 3799
                      network: string
                      source_ip: string
                    radsec:
                      enabled: true
                      idle_timeout: 0
                      server_name: string
                      servers:
                        - host: string
                          port: 0
                      use_mxedge: true
                    vlan_id: 0
                    vland_ids:
                      - 0
                    wxtunnel_id: string
                    wxtunnel_remote_id: string
                  property2:
                    disabled: true
                    dynamic_vlan:
                      default_vlan_id: 0
                      enabled: true
                      type: string
                      vlans:
                        property1: string
                        property2: string
                    enable_mac_auth: true
                    forwarding: all
                    mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                    mxtunnel_name: string
                    port_auth: none
                    port_vlan_id: 0
                    radius_config:
                      acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      auth_servers_retries: 3
                      auth_servers_timeout: 5
                      coa_enabled: false
                      coa_port: 3799
                      network: string
                      source_ip: string
                    radsec:
                      enabled: true
                      idle_timeout: 0
                      server_name: string
                      servers:
                        - host: string
                          port: 0
                      use_mxedge: true
                    vlan_id: 0
                    vland_ids:
                      - 0
                    wxtunnel_id: string
                    wxtunnel_remote_id: string
                pwr_config:
                  base: 0
                radio_config:
                  ant_gain_24: 0
                  ant_gain_5: 0
                  ant_gain_6: 0
                  band_24:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  band_24_usage: "24"
                  band_5:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  band_5_on_24_radio:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  band_6:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  scanning_enabled: true
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                switch_config:
                  enabled: false
                  eth0:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                  eth1:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                  eth2:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                  eth3:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                  module:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                  wds:
                    enable_vlan: true
                    port_vlan_id: 0
                    vlan_ids:
                      - 0
                usb_config:
                  cacert: string
                  channel: 0
                  enabled: true
                  host: string
                  port: 0
                  type: imagotag
                  verify_cert: true
                vars: {}
                x: 0
                y: 0
            gateway:
              value:
                additional_config_cmds:
                  - set snmp community public
                created_time: 0
                deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                dhcpd_config:
                  corp:
                    dns_servers:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    fixed_bindings:
                      5684dae9ac8b:
                        ip: 192.168.70.35
                        name: John
                    gateway: 192.168.70.1
                    ip_end: 192.168.70.200
                    ip_start: 192.168.70.100
                    type: local
                  enabled: true
                extra_routes:
                  0.0.0.0/0:
                    via: 10.2.1.1
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                image1_url: https://url/to/image.png
                ip_configs:
                  corp:
                    ip: 192.168.10.1
                    type: static
                managed: false
                modified_time: 0
                name: corp-a135
                networks: {}
                ntp_servers:
                  - pool.ntp.org
                  - time.google.com
                oob_ip_config:
                  ip: 192.168.50.3
                  netmask: 255.255.255.0
                  type: static
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                port_config:
                  cl-0/0/1:
                    ip_config:
                      type: pppoe
                    usage: wan
                    wan_config:
                      backup_only: true
                  ge-0/0/0:
                    ip_config:
                      type: dhcp
                    usage: wan
                  "ge-0/0/0,ge-7/0/0":
                    clustered: true
                    ip_config: {}
                    reth_idx: 3
                    usage: wan
                  ge-0/0/1-5:
                    usage: lan
                  ge-0/0/7:
                    ip_config:
                      type: static
                    usage: wan
                port_forward:
                  remote-ssh:
                    ip_port: 10.2.5.3
                    ip_range: 10.2.5.1/32-10.2.5.20/32
                    protocol: tcp
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                vars:
                  RADIUS_IP1: 172.31.2.5
                  RADIUS_SECRET: 11s64632d
            switch:
              value:
                additional_config_cmds:
                  - set snmp community public
                created_time: 0
                deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                disable_auto_config: false
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                image1_url: https://url/to/image.png
                ip_config:
                  dns:
                    - 8.8.8.8
                    - 4.4.4.4
                  dns_suffix:
                    - .mist.local
                    - .mist.com
                  gateway: 10.2.1.254
                  ip: 10.2.1.1
                  netmask: 255.255.255.0
                  network: default
                  type: static
                managed: false
                modified_time: 0
                name: corp-a135
                networks: {}
                notes: slightly off center
                ntp_servers:
                  - pool.ntp.org
                  - time.google.com
                oob_ip_config: {}
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                other_ip_configs:
                  guest:
                    ip: 10.3.3.1
                    netmask: 255.255.255.0
                    type: static
                port_config:
                  "*":
                    usage: default
                  ge-0/0/0:
                    aggregated: true
                    description: to dist-sw-01
                    usage: uplink
                  ge-0/0/1:
                    dynamic_usage: dynamic
                    usage: default
                  "ge-0/0/8-16,ge-1/0/0-47":
                    usage: ap
                port_usages: {}
                radius_config:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: 1.2.3.4
                      port: 1812
                      secret: testing123
                  auth_servers:
                    - host: 1.2.3.4
                      port: 1812
                      secret: testing123
                    - host: radius.internal
                      port: 1812
                      secret: testing123
                  auth_servers_retries: 3
                  auth_servers_timeout: 5
                role: access
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                vars:
                  RADIUS_IP1: 172.31.2.5
                  RADIUS_SECRET: 11s64632d
          schema:
            oneOf:
              - $ref: "#/components/schemas/device_ap"
              - $ref: "#/components/schemas/device_switch"
              - $ref: "#/components/schemas/device_gateway"
      description: OK
    DeviceConfigCmd:
      content:
        application/json:
          examples:
            example-1:
              value:
                cli:
                  - set system hostname corp-a135
          schema:
            properties:
              cli:
                items:
                  type: string
                type: array
            required:
              - cli
            type: object
      description: OK
    DeviceIot:
      content:
        application/json:
          examples:
            example-1:
              value:
                A1: 1
                DO: 0
          schema:
            additionalProperties:
              type: integer
            description: The property key is the IoT port name (e.g. "A1")
            type: object
      description: OK
    DeviceMetric:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1604347200
                interval: 3600
                limit: 168
                page: 1
                results:
                  - 10
                  - 11
                  - 12
                  - 12
                  - 10
                  - 9
                  - 9
                  - 9
                  - 10
                  - 10
                  - 11
                  - 11
                  - 11
                  - 11
                  - 11
                  - 11
                  - 11
                  - 10
                  - 11
                  - 11
                  - 10
                  - 11
                  - 11
                  - 10
                rt:
                  - 2020-11-01T20:00:00Z
                  - 2020-11-01T21:00:00Z
                  - 2020-11-01T22:00:00Z
                  - 2020-11-01T23:00:00Z
                  - 2020-11-02T00:00:00Z
                  - 2020-11-02T01:00:00Z
                  - 2020-11-02T02:00:00Z
                  - 2020-11-02T03:00:00Z
                  - 2020-11-02T04:00:00Z
                  - 2020-11-02T05:00:00Z
                  - 2020-11-02T06:00:00Z
                  - 2020-11-02T07:00:00Z
                  - 2020-11-02T08:00:00Z
                  - 2020-11-02T09:00:00Z
                  - 2020-11-02T10:00:00Z
                  - 2020-11-02T11:00:00Z
                  - 2020-11-02T12:00:00Z
                  - 2020-11-02T13:00:00Z
                  - 2020-11-02T14:00:00Z
                  - 2020-11-02T15:00:00Z
                  - 2020-11-02T16:00:00Z
                  - 2020-11-02T17:00:00Z
                  - 2020-11-02T18:00:00Z
                  - 2020-11-02T19:00:00Z
                start: 1604260800
          schema:
            properties:
              end:
                type: integer
              interval:
                type: integer
              results:
                items:
                  oneOf:
                    - type: string
                    - type: integer
                type: array
              rt:
                items:
                  type: string
                type: array
              start:
                type: integer
            required:
              - end
              - interval
              - results
              - start
            type: object
      description: OK
    DeviceOther:
      content:
        application/json:
          examples:
            Example 1:
              value:
                created_time: 1676983730
                device_mac: "001122334455"
                id: ae9dee49-69e7-4710-a114-5b827a777738
                mac: 5c5b35000018
                model: AP41
                modified_time: 1676983730
                name: hallway
                org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                serial: FXLH2015150025
                site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                vendor: cradlepoint
          schema:
            $ref: "#/components/schemas/device_other"
      description: Example response
    DeviceOtherArray:
      content:
        application/json:
          examples:
            Example 1:
              value:
                - created_time: 1676983730
                  device_mac: "001122334455"
                  id: ae9dee49-69e7-4710-a114-5b827a777738
                  mac: 5c5b35000018
                  model: AP41
                  modified_time: 1676983730
                  name: hallway
                  org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                  serial: FXLH2015150025
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                  vendor: cradlepoint
          schema:
            items:
              $ref: "#/components/schemas/device_other"
            type: array
      description: Example response
    DeviceOtherStats:
      content:
        application/json:
          examples:
            Example 1:
              value:
                last_config: 1675392788
                last_seen: 1675843629
                mac: 5c5b35000018
                uptime: 20296
                vendor: cradlepoint
                vendor_specific: {}
                version: 7.22.70
          schema:
            $ref: "#/components/schemas/stats_device_other"
      description: Example response
    DeviceRadioChannels:
      content:
        application/json:
          examples:
            example-1:
              value:
                band24_40mhz_allowed: false
                band24_channels:
                  "20":
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
                    - 7
                    - 8
                    - 9
                    - 10
                    - 11
                  "40":
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
                    - 7
                    - 8
                    - 9
                    - 10
                    - 11
                band24_enabled: true
                band5_channels:
                  "20":
                    - 36
                    - 40
                    - 44
                    - 48
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 108
                    - 112
                    - 116
                    - 120
                    - 124
                    - 128
                    - 132
                    - 136
                    - 140
                    - 144
                    - 149
                    - 153
                    - 157
                    - 161
                    - 165
                  "40":
                    - 36
                    - 40
                    - 44
                    - 48
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 108
                    - 112
                    - 116
                    - 120
                    - 124
                    - 128
                    - 132
                    - 136
                    - 140
                    - 144
                    - 149
                    - 153
                    - 157
                    - 161
                  "80":
                    - 36
                    - 40
                    - 44
                    - 48
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 108
                    - 112
                    - 116
                    - 120
                    - 124
                    - 128
                    - 132
                    - 136
                    - 140
                    - 144
                    - 149
                    - 153
                    - 157
                    - 161
                  dfs:
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 108
                    - 112
                    - 116
                    - 120
                    - 124
                    - 128
                    - 132
                    - 136
                    - 140
                    - 144
                  outdoor:
                    - 36
                    - 40
                    - 44
                    - 48
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 108
                    - 112
                    - 116
                    - 120
                    - 124
                    - 128
                    - 132
                    - 136
                    - 140
                    - 144
                    - 149
                    - 153
                    - 157
                    - 161
                    - 165
                band5_enabled: true
                certified: true
                code: 840
                dfs_ok: true
                key: US
                name: United States
                uses: US_FCC
          schema:
            properties:
              band24_40mhz_allowed:
                type: boolean
              band24_channels:
                type: object
              band24_enabled:
                type: boolean
              band5_channels:
                type: object
              band5_enabled:
                type: boolean
              certified:
                type: boolean
              code:
                type: integer
              dfs_ok:
                type: boolean
              key:
                type: string
              name:
                type: string
              uses:
                type: string
            required:
              - key
              - dfs_ok
              - band5_enabled
              - band24_enabled
              - band24_40mhz_allowed
              - certified
              - band5_channels
              - band24_channels
              - code
              - name
              - uses
            type: object
      description: OK
    DeviceUpgrade:
      content:
        application/json:
          examples:
            example-1:
              value:
                counts:
                  downloaded: 0
                  failed: 0
                  reboot_in_progress: 0
                  rebooted: 0
                  total: 0
                enable_p2p: true
                force: true
                id: 473f6eca-6276-4993-bfeb-53cbbbba6f18
                start_time: 0
                status: created
                strategy: big_bang
                target_version: string
          schema:
            $ref: "#/components/schemas/device_upgrade_response"
      description: OK
    DeviceUpgradeArray:
      content:
        application/json:
          examples:
            example-1:
              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
          schema:
            items:
              $ref: "#/components/schemas/device_upgrade_response"
            type: array
      description: Example response
    DeviceVersion:
      content:
        application/json:
          examples:
            example-1:
              value:
                - model: AP41
                  tag: stable
                  version: v0.1.543
                - model: AP21
                  version: v0.1.545
          schema:
            items:
              properties:
                model:
                  description: AP 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
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    Deviceprofile:
      content:
        application/json:
          examples:
            example-1:
              value:
                aeroscout:
                  enabled: true
                  host: string
                ble_config:
                  beacon_enabled: true
                  beacon_rate: 0
                  beacon_rate_mode: default
                  beam_disabled:
                    - 0
                  eddystone_uid_adv_power: -100
                  eddystone_uid_beams: string
                  eddystone_uid_enabled: true
                  eddystone_uid_freq_msec: 0
                  eddystone_uid_instance: string
                  eddystone_uid_namespace: string
                  eddystone_url_adv_power: 0
                  eddystone_url_beams: string
                  eddystone_url_enabled: true
                  eddystone_url_freq_msec: 0
                  eddystone_url_url: string
                  ibeacon_adv_power: -100
                  ibeacon_beams: string
                  ibeacon_enabled: true
                  ibeacon_freq_msec: 0
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  power: 1
                  power_mode: string
                created_time: 0
                disable_eth1: true
                disable_module: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                ip_config:
                  dns:
                    - string
                  dns_suffix:
                    - string
                  gateway: 192.168.0.1
                  gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  ip: 192.168.0.1
                  ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  mtu: 0
                  netmask: 192.168.0.1
                  netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                  type: static
                  type6: static
                  vlan_id: 1
                mesh:
                  enabled: true
                  group: 0
                  role: base
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                poe_passthrough: true
                radio_config:
                  ant_gain_24: 0
                  ant_gain_5: 0
                  band_24:
                    allow_rrm_disable: true
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: auto
                    usage: "24"
                  band_24_usage: "24"
                  band_5:
                    allow_rrm_disable: true
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: auto
                    usage: "24"
                  band_5_on_24_radio:
                    allow_rrm_disable: true
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: auto
                    usage: "24"
                  scanning_enabled: true
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                switch_config:
                  enabled: true
                  eth0:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                  eth1:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                  eth2:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                  eth3:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                  module:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                  wds:
                    port_vlan_id: 1
                    vlan_ids:
                      - 0
                usb_config:
                  cacert: string
                  channel: 0
                  enabled: true
                  host: string
                  port: 0
                  type: imagotag
                  verify_cert: true
          schema:
            $ref: "#/components/schemas/deviceprofile"
      description: OK
    DeviceprofilesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - aeroscout:
                    enabled: false
                    host: string
                    locate_connected: true
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: default
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: false
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                    power: 9
                    power_mode: string
                  created_time: 0
                  disable_eth1: false
                  disable_eth2: false
                  disable_eth3: false
                  disable_module: false
                  for_site: true
                  height: 0
                  id: 471f6eca-6276-4993-bfeb-53cbbbba6f38
                  iot_config:
                    A1:
                      enabled: false
                      name: string
                      output: true
                      pullup: internal
                    A2:
                      enabled: false
                      name: string
                      output: true
                      pullup: internal
                    A3:
                      enabled: false
                      name: string
                      output: true
                      pullup: internal
                    A4:
                      enabled: false
                      name: string
                      output: true
                      pullup: internal
                    DI1:
                      enabled: false
                      name: string
                      pullup: internal
                    DI2:
                      enabled: false
                      name: string
                      pullup: internal
                    DO:
                      enabled: false
                      name: string
                      output: true
                      pullup: internal
                      value: 0
                  ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: 192.168.0.1
                    gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    ip: 192.168.0.1
                    ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    mtu: 0
                    netmask: 192.168.0.1
                    netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
                    type: static
                    type6: static
                    vlan_id: 1
                  led:
                    brightness: 0
                    enabled: true
                  map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
                  mesh:
                    enabled: false
                    group: 0
                    role: base
                  modified_time: 0
                  name: string
                  notes: string
                  ntp_servers:
                    - string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  orientation: 0
                  orientation_overwrite: true
                  poe_passthrough: false
                  port_config:
                    property1:
                      disabled: true
                      dynamic_vlan:
                        default_vlan_id: 0
                        enabled: true
                        type: string
                        vlans:
                          property1: string
                          property2: string
                      enable_mac_auth: true
                      forwarding: all
                      mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                      mxtunnel_name: string
                      port_auth: none
                      port_vlan_id: 0
                      radius_config:
                        acct_interim_interval: 0
                        acct_servers:
                          - host: string
                            port: 1813
                            secret: string
                        auth_servers:
                          - host: string
                            port: 1812
                            secret: string
                        auth_servers_retries: 3
                        auth_servers_timeout: 5
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                        use_mxedge: true
                      vlan_id: 0
                      vland_ids:
                        - 0
                      wxtunnel_id: string
                      wxtunnel_remote_id: string
                    property2:
                      disabled: true
                      dynamic_vlan:
                        default_vlan_id: 0
                        enabled: true
                        type: string
                        vlans:
                          property1: string
                          property2: string
                      enable_mac_auth: true
                      forwarding: all
                      mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                      mxtunnel_name: string
                      port_auth: none
                      port_vlan_id: 0
                      radius_config:
                        acct_interim_interval: 0
                        acct_servers:
                          - host: string
                            port: 1813
                            secret: string
                        auth_servers:
                          - host: string
                            port: 1812
                            secret: string
                        auth_servers_retries: 3
                        auth_servers_timeout: 5
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                        use_mxedge: true
                      vlan_id: 0
                      vland_ids:
                        - 0
                      wxtunnel_id: string
                      wxtunnel_remote_id: string
                  pwr_config:
                    base: 0
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      ant_gain: 0
                      antenna_mode: default
                      bandwidth: 20
                      channel: 0
                      channels:
                        - 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: short
                      usage: "24"
                    scanning_enabled: true
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  switch_config:
                    enabled: false
                    eth0:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                    eth1:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                    eth2:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                    eth3:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                    module:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                    wds:
                      enable_vlan: true
                      port_vlan_id: 0
                      vlan_ids:
                        - 0
                  usb_config:
                    cacert: string
                    channel: 0
                    enabled: true
                    host: string
                    port: 0
                    type: imagotag
                    verify_cert: true
                  vars: {}
                  x: 0
                  y: 0
          schema:
            items:
              $ref: "#/components/schemas/deviceprofile"
            type: array
      description: Example response
    DevicesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - aeroscout:
                    enabled: true
                    host: string
                  ble_config:
                    beacon_enabled: true
                    beacon_rate: 0
                    beacon_rate_mode: string
                    beam_disabled:
                      - 0
                    eddystone_uid_adv_power: -100
                    eddystone_uid_beams: string
                    eddystone_uid_enabled: true
                    eddystone_uid_freq_msec: 0
                    eddystone_uid_instance: string
                    eddystone_uid_namespace: string
                    eddystone_url_adv_power: 0
                    eddystone_url_beams: string
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 0
                    eddystone_url_url: string
                    ibeacon_adv_power: -100
                    ibeacon_beams: string
                    ibeacon_enabled: true
                    ibeacon_freq_msec: 0
                    ibeacon_major: 0
                    ibeacon_minor: 0
                    ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    power: 0
                    power_mode: string
                  created_time: 0
                  deviceprofile_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  disable_eth1: true
                  disable_eth2: true
                  disable_eth3: true
                  disable_module: true
                  height: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  image1_url: string
                  iot_config:
                    A1:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: true
                    A2:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: true
                    A3:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: true
                    A4:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: true
                    DI1:
                      enabled: true
                      name: string
                      pullup: internal
                      value: true
                    DI2:
                      enabled: true
                      name: string
                      pullup: internal
                      value: true
                    DO:
                      enabled: true
                      name: string
                      output: true
                      pullup: internal
                      value: true
                  ip_config:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    gateway6: string
                    ip: string
                    ip6: string
                    mtu: 0
                    netmask: string
                    netmask6: string
                    type: static
                    type6: string
                    vlan_id: 1
                  led:
                    brightness: 0
                    enabled: true
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mesh:
                    enabled: true
                    group: 0
                    role: base
                  modified_time: 0
                  name: string
                  notes: string
                  ntp_servers:
                    - string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  orientation: 0
                  orientation_overwrite: true
                  poe_passthrough: true
                  pwr_config:
                    base: 0
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 0
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: string
                    band_24_usage: "24"
                    band_5:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 0
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: string
                    band_5_on_24_radio:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 0
                      channel: 0
                      disabled: true
                      power: 0
                      power_max: 0
                      power_min: 0
                      preamble: auto
                      usage: string
                    scanning_enabled: true
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  switch_config:
                    enabled: true
                    eth0:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth1:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth2:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    eth3:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    module:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                    wds:
                      port_vlan_id: 1
                      vlan_ids:
                        - 0
                  usb_config:
                    cacert: string
                    channel: 0
                    enabled: true
                    host: string
                    port: 0
                    type: string
                    verify_cert: true
                  vars: {}
                  x: 0
                  y: 0
          schema:
            items:
              anyOf:
                - $ref: "#/components/schemas/device_ap"
                - $ref: "#/components/schemas/device_switch"
                - $ref: "#/components/schemas/device_gateway"
            type: array
      description: OK
    DevicesArrayStats:
      content:
        application/json:
          examples:
            AP:
              value:
                - ble_config:
                    beacon_rate: 3
                    beacon_rate_model: custom
                    beam_disabled:
                      - 1
                      - 3
                      - 6
                    power: 10
                    power_mode: custom
                  ble_stat:
                    beacon_rate: 3
                    eddystone_uid_enabled: false
                    eddystone_uid_freq_msec: 200
                    eddystone_uid_instance: 5c5b35000001
                    eddystone_uid_namespace: 2818e3868dec25629ede
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 100
                    eddystone_url_url: https://www.abc.com
                    ibeacon_enabled: true
                    ibeacon_major: 13
                    ibeacon_minor: 138
                    ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                    major: 12345
                    minors:
                      - 201
                      - 202
                      - 203
                      - 204
                      - 205
                      - 206
                      - 207
                      - 208
                    power: 10
                    rx_bytes: 135
                    rx_pkts: 135
                    tx_bytes: 5231513353
                    tx_pkts: 135135135
                    tx_resets: 0
                    uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                  cert_expiry: 1534534392
                  ext_ip: 73.92.124.103
                  fwupdate:
                    progress: 10
                    status: inprogress
                    status_id: 5
                    timestamp: 1428949501
                  iot_stat:
                    DI2:
                      value: 0
                  ip: 10.2.9.159
                  ip_config:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.254
                    ip: 10.2.1.1
                    netmask: 255.255.255.0
                    type: static
                  ip_stat:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.254
                    gateway6: 2607:f8b0:4005:808::1
                    ip: 10.2.1.1
                    ip6: 2607:f8b0:4005:808::2004
                    ips:
                      vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                      vlan193: 10.73.1.31/16
                      vlan3157: 10.72.11.14/24
                    netmask: 255.255.255.0
                    netmask6: /32
                  l2tp_stat:
                    7dae216d-7c98-a51b-e068-dd7d477b7216:
                      sessions:
                        - local_sid: 31
                          remote_id: vpn1
                          remote_sid: 13
                          state: established
                      state: established_with_sessions
                      uptime: 135
                      wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                  last_seen: 1470417522
                  last_trouble:
                    code: "03"
                    timestamp: 1428949501
                  led:
                    brightness: 255
                    enabled: true
                  lldp_stat:
                    chassis_id: 63:68:61:73:73:69
                    lldp_med_supported: false
                    mgmt_addr: 10.1.5.2
                    port_desc: 2/26
                    power_allocated: 15500
                    power_draw: 15000
                    power_request_count: 3
                    power_requested: 25500
                    system_desc: HP J9729A 2920-48G-POE+ Switch
                    system_name: TC2-OWL-Stack-01
                  locating: false
                  mac: 5c5b35000010
                  map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                  mesh_downlinks:
                    00000000-0000-0000-1000-5c5b356be59f:
                      band: "24"
                      channel: 7
                      idle_time: 3
                      last_seen: 1470417522
                      proto: a
                      rssi: -65
                      rx_bps: 12
                      rx_bytes: 217416
                      rx_packets: 2337
                      rx_rate: 65
                      rx_retries: 5
                      snr: 31
                      tx_bps: 6
                      tx_bytes: 175132
                      tx_packets: 1566
                      tx_rate: 65
                      tx_retries: 500
                  mesh_uplink:
                    band: "24"
                    channel: 7
                    idle_time: 3
                    last_seen: 1470417522
                    proto: a
                    rssi: -65
                    rx_bps: 12
                    rx_bytes: 217416
                    rx_packets: 2337
                    rx_rate: 65
                    rx_retries: 5
                    snr: 31
                    tx_bps: 6
                    tx_bytes: 175132
                    tx_packets: 1566
                    tx_rate: 65
                    tx_retries: 500
                    uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
                  model: AP200
                  name: conference room
                  num_clients: 10
                  port_stat:
                    eth0:
                      full_duplex: true
                      rx_bytes: 2056
                      rx_errors: 0
                      rx_pkts: 670
                      speed: 1000
                      tx_bytes: 2056
                      tx_pkts: 670
                      up: true
                    eth1:
                      up: false
                    module:
                      up: false
                  power_budget: -12000
                  power_src: PoE 802.3af
                  radio_config:
                    band_24:
                      bandwidth: 20
                      channel: 0
                      dynamic_chaining_enabled: false
                      power: 0
                      rx_chain: 4
                      tx_chain: 4
                    band_5:
                      bandwidth: 40
                      channel: 0
                      dynamic_chaining_enabled: false
                      power: 0
                      rx_chain: 4
                      tx_chain: 1
                    scanning_enabled: true
                  radio_stat:
                    band_24:
                      bandwidth: 20
                      channel: 6
                      mac: 5c5b350004a0
                      num_clients: 6
                      power: 19
                      rx_bytes: 8504737800
                      rx_pkts: 57731964
                      tx_bytes: 211166512114
                      tx_pkts: 812058566
                    band_5:
                      bandwidth: 80
                      channel: 44
                      mac: 5c5b350004b0
                      num_clients: 4
                      power: 15
                      rx_bytes: 10366616
                      rx_pkts: 38603
                      tx_bytes: 50877568
                      tx_pkts: 145496
                  rx_bps: 60003
                  rx_bytes: 8515104416
                  rx_pkts: 57770567
                  serial: FXLH2015170017
                  status: connected
                  tx_bps: 634301
                  tx_bytes: 211217389682
                  tx_pkts: 812204062
                  type: ap
                  uptime: 13500
                  usb_stat:
                    channel: 3
                    connected: true
                    last_activity: 1586873254
                    type: imagotag
                    up: true
                  version: 1.0.0
                  x: 53.5
                  y: 173.1
            Gateway:
              value:
                - cluster_stat:
                    node0:
                      status: ""
                    node1: {}
                  cpu2_stat: ""
                  cpu_stat:
                    idle: 28
                    interrupt: 8
                    load_avg:
                      - 0.9700000286102295
                      - 1.0499999523162842
                      - 1.0199999809265137
                    system: 41
                    user: 23
                  hostname: sj1
                  ip: 10.2.11.137
                  ip_stat:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.1
                    gateway6: 2607:f8b0:4005:808::1
                    ip: 10.2.11.137
                    ip6: 2607:f8b0:4005:808::2004
                    ips:
                      vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                      vlan193: 10.73.1.31/16
                      vlan3157: 10.72.11.14/24
                    netmask: 255.255.192.0
                    netmask6: /32
                  last_seen: 1553203563
                  mac: dc38e1dbf3cd
                  memory_stat:
                    usage: 35
                  model: SRX320
                  module2_stat: ""
                  module_stat:
                    - fans:
                        - name: Fan 0
                          status: absent
                        - airflow: out
                          name: Fan 1
                          status: ok
                      model: EX4300-48P
                      poe:
                        max_power: 250
                        power_draw: 120.3
                      psus:
                        - name: Power Supply 0
                          status: ok
                        - name: Power Supply 1
                          status: failed
                      serial: PX8716230021
                      temperatures:
                        - celsius: 45
                          name: CPU
                          status: ok
                      vc_links:
                        - neighbor_module_idx: 1
                          neighbor_port_id: vcp-255/1/0
                          port_id: vcp-255/1/0
                      vc_role: master
                  name: sj1
                  serial: TC3714190003
                  spu2_stat: ""
                  spu_stat:
                    cpu: 15
                    memory: 32
                    sessions:
                      current: 41
                      max: 65535
                      pending: 12
                      valid: 15
                  status: connected
                  type: gateway
                  uptime: 13500
                  version: 18.4R1.8
            Switch:
              value:
                - ble_config:
                    beacon_rate: 3
                    beacon_rate_model: custom
                    beam_disabled:
                      - 1
                      - 3
                      - 6
                    power: 10
                    power_mode: custom
                  ble_stat:
                    beacon_rate: 3
                    eddystone_uid_enabled: false
                    eddystone_uid_freq_msec: 200
                    eddystone_uid_instance: 5c5b35000001
                    eddystone_uid_namespace: 2818e3868dec25629ede
                    eddystone_url_enabled: true
                    eddystone_url_freq_msec: 100
                    eddystone_url_url: https://www.abc.com
                    ibeacon_enabled: true
                    ibeacon_major: 13
                    ibeacon_minor: 138
                    ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
                    major: 12345
                    minors:
                      - 201
                      - 202
                      - 203
                      - 204
                      - 205
                      - 206
                      - 207
                      - 208
                    power: 10
                    rx_bytes: 135
                    rx_pkts: 135
                    tx_bytes: 5231513353
                    tx_pkts: 135135135
                    tx_resets: 0
                    uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
                  cert_expiry: 1534534392
                  ext_ip: 73.92.124.103
                  fwupdate:
                    progress: 10
                    status: inprogress
                    status_id: 5
                    timestamp: 1428949501
                  iot_stat:
                    DI2:
                      value: 0
                  ip: 10.2.9.159
                  ip_config:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.254
                    ip: 10.2.1.1
                    netmask: 255.255.255.0
                    type: static
                  ip_stat:
                    dns:
                      - 8.8.8.8
                      - 4.4.4.4
                    dns_suffix:
                      - .mist.local
                      - .mist.com
                    gateway: 10.2.1.254
                    gateway6: 2607:f8b0:4005:808::1
                    ip: 10.2.1.1
                    ip6: 2607:f8b0:4005:808::2004
                    ips:
                      vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
                      vlan193: 10.73.1.31/16
                      vlan3157: 10.72.11.14/24
                    netmask: 255.255.255.0
                    netmask6: /32
                  l2tp_stat:
                    7dae216d-7c98-a51b-e068-dd7d477b7216:
                      sessions:
                        - local_sid: 31
                          remote_id: vpn1
                          remote_sid: 13
                          state: established
                      state: established_with_sessions
                      uptime: 135
                      wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                  last_seen: 1470417522
                  last_trouble:
                    code: "03"
                    timestamp: 1428949501
                  led:
                    brightness: 255
                    enabled: true
                  lldp_stat:
                    chassis_id: 63:68:61:73:73:69
                    lldp_med_supported: false
                    mgmt_addr: 10.1.5.2
                    port_desc: 2/26
                    power_allocated: 15500
                    power_draw: 15000
                    power_request_count: 3
                    power_requested: 25500
                    system_desc: HP J9729A 2920-48G-POE+ Switch
                    system_name: TC2-OWL-Stack-01
                  locating: false
                  mac: 5c5b35000010
                  map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
                  mesh_downlinks:
                    00000000-0000-0000-1000-5c5b356be59f:
                      band: "24"
                      channel: 7
                      idle_time: 3
                      last_seen: 1470417522
                      proto: a
                      rssi: -65
                      rx_bps: 12
                      rx_bytes: 217416
                      rx_packets: 2337
                      rx_rate: 65
                      rx_retries: 5
                      snr: 31
                      tx_bps: 6
                      tx_bytes: 175132
                      tx_packets: 1566
                      tx_rate: 65
                      tx_retries: 500
                  mesh_uplink:
                    band: "24"
                    channel: 7
                    idle_time: 3
                    last_seen: 1470417522
                    proto: a
                    rssi: -65
                    rx_bps: 12
                    rx_bytes: 217416
                    rx_packets: 2337
                    rx_rate: 65
                    rx_retries: 5
                    snr: 31
                    tx_bps: 6
                    tx_bytes: 175132
                    tx_packets: 1566
                    tx_rate: 65
                    tx_retries: 500
                    uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
                  model: AP200
                  name: conference room
                  num_clients: 10
                  port_stat:
                    eth0:
                      full_duplex: true
                      rx_bytes: 2056
                      rx_errors: 0
                      rx_pkts: 670
                      speed: 1000
                      tx_bytes: 2056
                      tx_pkts: 670
                      up: true
                    eth1:
                      up: false
                    module:
                      up: false
                  power_budget: -12000
                  power_src: PoE 802.3af
                  radio_config:
                    band_24:
                      bandwidth: 20
                      channel: 0
                      dynamic_chaining_enabled: false
                      power: 0
                      rx_chain: 4
                      tx_chain: 4
                    band_5:
                      bandwidth: 40
                      channel: 0
                      dynamic_chaining_enabled: false
                      power: 0
                      rx_chain: 4
                      tx_chain: 1
                    scanning_enabled: true
                  radio_stat:
                    band_24:
                      bandwidth: 20
                      channel: 6
                      mac: 5c5b350004a0
                      num_clients: 6
                      power: 19
                      rx_bytes: 8504737800
                      rx_pkts: 57731964
                      tx_bytes: 211166512114
                      tx_pkts: 812058566
                    band_5:
                      bandwidth: 80
                      channel: 44
                      mac: 5c5b350004b0
                      num_clients: 4
                      power: 15
                      rx_bytes: 10366616
                      rx_pkts: 38603
                      tx_bytes: 50877568
                      tx_pkts: 145496
                  rx_bps: 60003
                  rx_bytes: 8515104416
                  rx_pkts: 57770567
                  serial: FXLH2015170017
                  status: connected
                  tx_bps: 634301
                  tx_bytes: 211217389682
                  tx_pkts: 812204062
                  type: ap
                  uptime: 13500
                  usb_stat:
                    channel: 3
                    connected: true
                    last_activity: 1586873254
                    type: imagotag
                    up: true
                  version: 1.0.0
                  x: 53.5
                  y: 173.1
          schema:
            items:
              anyOf:
                - $ref: "#/components/schemas/stats_device_ap"
                - $ref: "#/components/schemas/stats_device_switch"
                - $ref: "#/components/schemas/stats_device_gateway"
            type: array
      description: OK
    DevicesEventsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                next: string
                results:
                  - ap: 5c5b351e13b5
                    apfw: 5c5b351e13b5
                    model: BT11-WW
                    org_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862a
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    text: Succeeding DNS query from 172.29.101.134 to 172.29.101.7 for "portal.mistsys.com" on vlan 1, id 60224
                    timestamp: 1547235620.89
                    type: CLIENT_DNS_OK
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/events_device_ap"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - results
              - start
              - end
              - limit
              - total
            type: object
      description: OK
    DevicesSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                next: string
                results:
                  - hostname:
                      - AP41-STB-3E5299-WH-2001
                      - AP41-STB-3E5299-WH-50
                      - AP41-STB-3E5299
                      - 5c5b353e5299
                    ip: 10.2.16.205
                    lldp_mgmt_addr: 10.2.10.139
                    lldp_port_desc: GigabitEthernet1/0/1
                    lldp_port_id: Gi1/0/1
                    lldp_system_desc: |-
                      Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 15.2(1)E1, RELEASE SOFTWARE (fc2)
                      Technical Support: http://www.cisco.com/techsupport
                      Copyright (c) 1986-2013 by Cisco Systems, Inc.
                      Compiled Fri 22-Nov-13 07:10 by prod_rel_team
                    lldp_system_name: ME-DC-1-ACC-SW
                    mac: 5c5b353e5299
                    model: AP41
                    mxedge_id: 00000000-0000-0000-1000-43a81f238391
                    mxtunnel_status: down
                    org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
                    site_id: a8178443-ecb5-461c-b854-f16627619ab3
                    sku: AP41-US
                    timestamp: 1596588619.007
                    uptime: 85280
                    version: 0.7.20216
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  anyOf:
                    - $ref: "#/components/schemas/device_search_ap"
                    - $ref: "#/components/schemas/device_search_switch_gateway"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    EventsFastroam:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1501023379
                limit: 2
                next: /api/v1/sites/dca0a44b-324c-11e6-a776-0243ad110007/events/fast_roam?type=success&start=1428939600&end=1428949600&limit=200&token=AAAAEgAIAAVVJh4hF8AAAARzc2lkAH%2F%2F%2F%2F0%3D
                results:
                  - ap_mac: 5c5b350e040b
                    client_mac: dc2b2a3fb13d
                    fromap: 5c5b350e0569
                    latency: 0.1874195
                    ssid: marvis_test
                    subtype: CLIENT_AUTHENTICATED_11R
                    timestamp: 1501000002283782
                start: 1500940800
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                description: the link to query next set of results. value is null if no next page exists.
                type: string
              results:
                items:
                  properties:
                    ap_mac:
                      type: string
                    client_mac:
                      type: string
                    fromap:
                      type: string
                    latency:
                      type: number
                    ssid:
                      type: string
                    subtype:
                      type: string
                    timestamp:
                      description: timestamp of the event in nsec
                      type: number
                    type:
                      description: success / fail / none / poor/ pingpong / slow
                      enum:
                        - success
                        - fail
                        - none
                        - poor
                        - pingpong
                        - slow
                      type: string
                  required:
                    - latency
                    - ssid
                    - timestamp
                    - ap_mac
                    - fromap
                    - client_mac
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - start
              - end
              - limit
              - results
            type: object
      description: OK
    EventsInterference:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                limit: 100
                page: 1
                results:
                  - ap_id: 00000000-0000-0000-1000-5c5b359e4fe0
                    band: 5
                    channel_util: 0.03
                    channels:
                      - 1
                      - 2
                      - 5
                    rssi: -64
                    source: Microwave Oven
                    timestamp: 1428939600
                start: 1428939600
                total: 135
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              page:
                type: integer
              results:
                items:
                  properties:
                    ap_id:
                      format: uuid
                      type: string
                    band:
                      type: integer
                    channel_util:
                      type: number
                    channels:
                      items:
                        type: integer
                      type: array
                    rssi:
                      type: number
                    source:
                      type: string
                    timestamp:
                      type: number
                  required:
                    - timestamp
                    - band
                    - source
                    - channel_util
                    - rssi
                    - ap_id
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - page
              - total
              - results
            type: object
      description: OK
    EventsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                results:
                  - ap: string
                    band: "24"
                    bssid: string
                    channel: 0
                    proto: a
                    ssid: string
                    text: string
                    timestamp: 0
                    type: string
                    type_code: 0
                    wlan_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                start: 0
                total: 0
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/events_client"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - start
              - end
              - limit
              - total
              - results
            type: object
      description: OK
    EvpnTopology:
      content:
        application/json:
          examples:
            example-1:
              value:
                id: 9197ec96-4c8d-529f-c595-035895e688b2
                name: CC
                pod_names:
                  "1": default
                  "2": default
                switches:
                  - downlink_ips:
                      - 10.255.240.6
                      - 10.255.240.8
                    downlinks:
                      - 5c5b35000007
                      - 5c5b35000008
                    evpn_id: 1
                    mac: 5c5b35000003
                    model: QFX10002-36Q
                    role: collapsed-core
                    uplinks:
                      - 5c5b35000005
                      - 5c5b35000006
          schema:
            $ref: "#/components/schemas/junos_evpn_topology"
      description: Example response
    File:
      content:
        application/json:
          schema:
            description: File
            format: binary
            type: string
      description: OK
    Gatewaytemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                additional_config_cmds:
                  - string
                bgp_config:
                  property1:
                    auth_key: string
                    bfd_minimum_interval: 0
                    communities:
                      - id: string
                        local_preference: 0
                        vpn_name: string
                    export: string
                    export_policy: string
                    graceful_restart_time: 0
                    hold_time: 90
                    import: string
                    import_policy: string
                    local_as: 0
                    neighbor_as: 0
                    neighbors:
                      property1:
                        export_policy: string
                        hold_time: 90
                        import_policy: string
                        multihop_ttl: 0
                        neighbor_as: 0
                      property2:
                        export_policy: string
                        hold_time: 90
                        import_policy: string
                        multihop_ttl: 0
                        neighbor_as: 0
                    networks:
                      - string
                    type: internal
                    via: wan
                    wan_name: string
                  property2:
                    auth_key: string
                    bfd_minimum_interval: 0
                    communities:
                      - id: string
                        local_preference: 0
                        vpn_name: string
                    export: string
                    export_policy: string
                    graceful_restart_time: 0
                    hold_time: 90
                    import: string
                    import_policy: string
                    local_as: 0
                    neighbor_as: 0
                    neighbors:
                      property1:
                        export_policy: string
                        hold_time: 90
                        import_policy: string
                        multihop_ttl: 0
                        neighbor_as: 0
                      property2:
                        export_policy: string
                        hold_time: 90
                        import_policy: string
                        multihop_ttl: 0
                        neighbor_as: 0
                    networks:
                      - string
                    type: internal
                    via: wan
                    wan_name: string
                created_time: 0
                dhcpd_config:
                  property1:
                    dns_servers:
                      - 192.168.0.1
                    dns_suffix:
                      - string
                    fixed_bindings:
                      property1:
                        ip: 192.168.0.1
                        name: string
                      property2:
                        ip: 192.168.0.1
                        name: string
                    gateway: 192.168.0.1
                    ip_end: 192.168.0.1
                    ip_start: 192.168.0.1
                    servers:
                      - 192.168.0.1
                    type: local
                  property2:
                    dns_servers:
                      - 192.168.0.1
                    dns_suffix:
                      - string
                    fixed_bindings:
                      property1:
                        ip: 192.168.0.1
                        name: string
                      property2:
                        ip: 192.168.0.1
                        name: string
                    gateway: 192.168.0.1
                    ip_end: 192.168.0.1
                    ip_start: 192.168.0.1
                    servers:
                      - 192.168.0.1
                    type: local
                extra_routes:
                  property1:
                    via: 192.168.0.1
                  property2:
                    via: 192.168.0.1
                gateway_matching:
                  enable: true
                  rules:
                    - additional_config_cmds:
                        - string
                      name: string
                      port_config:
                        property1:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          disable_autoneg: false
                          duplex: auto
                          dynamic_usage: string
                          esilag: true
                          mtu: 1514
                          no_local_overwrite: true
                          poe_disabled: false
                          speed: auto
                          usage: string
                        property2:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          disable_autoneg: false
                          duplex: auto
                          dynamic_usage: string
                          esilag: true
                          mtu: 1514
                          no_local_overwrite: true
                          poe_disabled: false
                          speed: auto
                          usage: string
                      property1: string
                      property2: string
                id: 497f6eca-6276-4999-bfeb-53cbbbba6f08
                ip_configs:
                  property1:
                    ip: 192.168.0.1
                    netmask: /24
                  property2:
                    ip: 192.168.0.1
                    netmask: /24
                modified_time: 0
                name: string
                networks:
                  property1:
                    created_time: 0
                    disallow_mist_services: false
                    gateway: 192.168.70.1
                    hosts:
                      property1:
                        external_ips: 172.16.10.32-172.16.10.35
                        ips: 192.168.70.32-192.168.70.35
                      property2:
                        external_ips: 172.16.10.32-172.16.10.35
                        ips: 192.168.70.32-192.168.70.35
                    id: 497f6eca-6276-4992-bfeb-53cbbbba6f08
                    internal_access:
                      enabled: true
                    internet_access:
                      create_simple_service_policy: false
                      destination_nat:
                        property1:
                          internal_ip: string
                          name: string
                          port: string
                        property2:
                          internal_ip: string
                          name: string
                          port: string
                      enabled: true
                      restricted: false
                      static_nat:
                        property1:
                          internal_ip: string
                          name: string
                        property2:
                          internal_ip: string
                          name: string
                    isolation: true
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    subnet: 192.168.70.0/24
                    tenants:
                      property1:
                        addresses: string
                      property2:
                        addresses: string
                    vlan_id: 0
                    vpn_access:
                      property1:
                        allow_ping: true
                        destination_nat:
                          property1:
                            name: string
                            port: string
                            to: string
                          property2:
                            name: string
                            port: string
                            to: string
                        nat_pool: string
                        routed: true
                        source_nat:
                          exteral_ip: string
                        static_nat:
                          property1:
                            name: string
                            to: string
                          property2:
                            name: string
                            to: string
                        summarized_nat_pool: string
                      property2:
                        allow_ping: true
                        destination_nat:
                          property1:
                            name: string
                            port: string
                            to: string
                          property2:
                            name: string
                            port: string
                            to: string
                        nat_pool: string
                        routed: true
                        source_nat:
                          exteral_ip: string
                        static_nat:
                          property1:
                            name: string
                            to: string
                          property2:
                            name: string
                            to: string
                        summarized_nat_pool: string
                  property2:
                    created_time: 0
                    disallow_mist_services: false
                    gateway: 192.168.70.1
                    hosts:
                      property1:
                        external_ips: 172.16.10.32-172.16.10.35
                        ips: 192.168.70.32-192.168.70.35
                      property2:
                        external_ips: 172.16.10.32-172.16.10.35
                        ips: 192.168.70.32-192.168.70.35
                    id: 497f6eca-6276-4991-bfeb-53cbbbba6f08
                    internal_access:
                      enabled: true
                    internet_access:
                      create_simple_service_policy: false
                      destination_nat:
                        property1:
                          internal_ip: string
                          name: string
                          port: string
                        property2:
                          internal_ip: string
                          name: string
                          port: string
                      enabled: true
                      restricted: false
                      static_nat:
                        property1:
                          internal_ip: string
                          name: string
                        property2:
                          internal_ip: string
                          name: string
                    isolation: true
                    modified_time: 0
                    name: string
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    subnet: 192.168.70.0/24
                    tenants:
                      property1:
                        addresses: string
                      property2:
                        addresses: string
                    vlan_id: 0
                    vpn_access:
                      property1:
                        allow_ping: true
                        destination_nat:
                          property1:
                            name: string
                            port: string
                            to: string
                          property2:
                            name: string
                            port: string
                            to: string
                        nat_pool: string
                        routed: true
                        source_nat:
                          exteral_ip: string
                        static_nat:
                          property1:
                            name: string
                            to: string
                          property2:
                            name: string
                            to: string
                        summarized_nat_pool: string
                      property2:
                        allow_ping: true
                        destination_nat:
                          property1:
                            name: string
                            port: string
                            to: string
                          property2:
                            name: string
                            port: string
                            to: string
                        nat_pool: string
                        routed: true
                        source_nat:
                          exteral_ip: string
                        static_nat:
                          property1:
                            name: string
                            to: string
                          property2:
                            name: string
                            to: string
                        summarized_nat_pool: string
                oob_ip_config:
                  additionalProperties:
                    ip: string
                    netmask: string
                    network: string
                    type: dynamic
                  dns:
                    - string
                  dns_suffix:
                    - string
                  gateway: string
                  ip: string
                  netmask: string
                  network: string
                  type: dynamic
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                path_preferences:
                  property1:
                    paths:
                      cost: 0
                      gateway_ip: string
                      internet_access: false
                      name: string
                      networks:
                        - string
                      target_ips:
                        - string
                      type: local
                    strategy: ordered
                  property2:
                    paths:
                      cost: 0
                      gateway_ip: string
                      internet_access: false
                      name: string
                      networks:
                        - string
                      target_ips:
                        - string
                      type: local
                    strategy: ordered
                port_config:
                  property1:
                    description: string
                    dsl_config:
                      ppoe_auth: none
                      ppoe_password: string
                      ppoe_username: string
                    dsl_type: string
                    ip_config:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ip: string
                      netmask: string
                      network: string
                      poser_password: string
                      ppoe_username: string
                      pppoe_auth: none
                      type: dhcp
                    lte_apn: string
                    lte_auth: none
                    lte_backup: true
                    lte_password: string
                    lte_username: string
                    name: string
                    networks:
                      - string
                    pci_address: string
                    port_network: string
                    redundant: true
                    reth_idx: 0
                    reth_node: string
                    traffic_shaping:
                      enabled: true
                      max_tx_kbps: 0
                    usage: lan
                    vlan_id: 0
                    vpn_paths:
                      property1:
                        bfd_profile: broadband
                        role: spoke
                      property2:
                        bfd_profile: broadband
                        role: spoke
                    wan_ext_ip: string
                    wan_source_nat:
                      disabled: false
                      nat_pool: 64.2.4.0/30
                    wan_type: broadband
                  property2:
                    description: string
                    dsl_config:
                      ppoe_auth: none
                      ppoe_password: string
                      ppoe_username: string
                    dsl_type: string
                    ip_config:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ip: string
                      netmask: string
                      network: string
                      poser_password: string
                      ppoe_username: string
                      pppoe_auth: none
                      type: dhcp
                    lte_apn: string
                    lte_auth: none
                    lte_backup: true
                    lte_password: string
                    lte_username: string
                    name: string
                    networks:
                      - string
                    pci_address: string
                    port_network: string
                    redundant: true
                    reth_idx: 0
                    reth_node: string
                    traffic_shaping:
                      enabled: true
                      max_tx_kbps: 0
                    usage: lan
                    vlan_id: 0
                    vpn_paths:
                      property1:
                        bfd_profile: broadband
                        role: spoke
                      property2:
                        bfd_profile: broadband
                        role: spoke
                    wan_ext_ip: string
                    wan_source_nat:
                      disabled: false
                      nat_pool: 64.2.4.0/30
                    wan_type: broadband
                routing_policies:
                  property1:
                    terms:
                      - action:
                          accept: true
                          community:
                            - 65003:10
                          exclude_as_path:
                            - "65002"
                          export_communitites:
                            - string
                          local_preference: string
                          prepend_as_path:
                            - "65003"
                        matching:
                          as_path:
                            - "65001"
                          community:
                            - 65001:2
                          network:
                            - string
                          prefix:
                            - 192.168.0.0/16-30
                          protocol:
                            - direct
                          route_exists:
                            route: 192.168.0.0/24
                            vrf_name: default
                  property2:
                    terms:
                      - action:
                          accept: true
                          community:
                            - 65003:10
                          exclude_as_path:
                            - "65002"
                          export_communitites:
                            - string
                          local_preference: string
                          prepend_as_path:
                            - "65003"
                        matching:
                          as_path:
                            - "65001"
                          community:
                            - 65001:2
                          network:
                            - string
                          prefix:
                            - 192.168.0.0/16-30
                          protocol:
                            - direct
                          route_exists:
                            route: 192.168.0.0/24
                            vrf_name: default
                service_policies:
                  - action: allow
                    ewf:
                      - alert_only: true
                        block_message: Access to this URL Category has been blocked
                        enabled: false
                        profille: strict
                    idp:
                      alert_only: string
                      enabled: false
                      profile: strict
                    local_routing: false
                    name: string
                    path_preferences: string
                    servicepolicy_id: a4b81837-7a2f-46c1-bf27-dc8af6edd0a0
                    services:
                      - string
                    tenants:
                      - string
                tunnel_configs:
                  property1:
                    ike_lifetime: 0
                    ike_mode: main
                    ike_proposals:
                      - auth_algo: sha1
                        dh_group: "14"
                        enc_algo: aes256
                    ipsec_lifetime: 0
                    ipsec_proposals:
                      - auth_algo: sha1
                        dh_group: "14"
                        enc_algo: aes256
                    local_id: string
                    primary:
                      hosts:
                        - string
                      intern_ips:
                        - string
                      probe_ips:
                        - string
                      wan_names:
                        - string
                    probe:
                      interval: 0
                      threshold: 0
                      timeout: 0
                      type: icmp
                    protocol: ipsec
                    provider: zscaler-ipsec
                    psk: string
                    secondary:
                      hosts:
                        - string
                      intern_ips:
                        - string
                      probe_ips:
                        - string
                      wan_names:
                        - string
                    version: "2"
                  property2:
                    ike_lifetime: 0
                    ike_mode: main
                    ike_proposals:
                      - auth_algo: sha1
                        dh_group: "14"
                        enc_algo: aes256
                    ipsec_lifetime: 0
                    ipsec_proposals:
                      - auth_algo: sha1
                        dh_group: "14"
                        enc_algo: aes256
                    local_id: string
                    primary:
                      hosts:
                        - string
                      intern_ips:
                        - string
                      probe_ips:
                        - string
                      wan_names:
                        - string
                    probe:
                      interval: 0
                      threshold: 0
                      timeout: 0
                      type: icmp
                    protocol: ipsec
                    provider: zscaler-ipsec
                    psk: string
                    secondary:
                      hosts:
                        - string
                      intern_ips:
                        - string
                      probe_ips:
                        - string
                      wan_names:
                        - string
                    version: "2"
                type: standalone
          schema:
            $ref: "#/components/schemas/gatewaytemplate"
      description: OK
    GatewaytemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - additional_config_cmds:
                    - string
                  bgp_config:
                    property1:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: lan
                      wan_name: string
                    property2:
                      auth_key: string
                      bfd_minimum_interval: 0
                      communities:
                        - id: string
                          local_preference: 0
                          vpn_name: string
                      export: string
                      export_policy: string
                      graceful_restart_time: 0
                      hold_time: 90
                      import: string
                      import_policy: string
                      local_as: 0
                      neighbor_as: 0
                      neighbors:
                        property1:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                        property2:
                          export_policy: string
                          hold_time: 90
                          import_policy: string
                          multihop_ttl: 0
                          neighbor_as: 0
                      networks:
                        - string
                      type: internal
                      via: lan
                      wan_name: string
                  created_time: 0
                  dhcpd_config:
                    property1:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                    property2:
                      dns_servers:
                        - 192.168.0.1
                      dns_suffix:
                        - string
                      fixed_bindings:
                        property1:
                          ip: 192.168.0.1
                          name: string
                        property2:
                          ip: 192.168.0.1
                          name: string
                      gateway: 192.168.0.1
                      ip_end: 192.168.0.1
                      ip_start: 192.168.0.1
                      servers:
                        - 192.168.0.1
                      type: local
                  extra_routes:
                    property1:
                      via: 192.168.0.1
                    property2:
                      via: 192.168.0.1
                  gateway_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                  id: 497f6eca-6276-4990-bfeb-53cbbbba6f08
                  ip_configs:
                    property1:
                      ip: 192.168.0.1
                      netmask: /24
                    property2:
                      ip: 192.168.0.1
                      netmask: /24
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-5000-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                    property2:
                      created_time: 0
                      disallow_mist_services: false
                      gateway: 192.168.70.1
                      hosts:
                        property1:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                        property2:
                          external_ips: 172.16.10.32-172.16.10.35
                          ips: 192.168.70.32-192.168.70.35
                      id: 497f6eca-6276-5001-bfeb-53cbbbba6f08
                      internal_access:
                        enabled: true
                      internet_access:
                        create_simple_service_policy: false
                        destination_nat:
                          property1:
                            internal_ip: string
                            name: string
                            port: string
                          property2:
                            internal_ip: string
                            name: string
                            port: string
                        enabled: true
                        restricted: false
                        static_nat:
                          property1:
                            internal_ip: string
                            name: string
                          property2:
                            internal_ip: string
                            name: string
                      isolation: true
                      modified_time: 0
                      name: string
                      org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                      subnet: 192.168.70.0/24
                      tenants:
                        property1:
                          addresses: string
                        property2:
                          addresses: string
                      vlan_id: 0
                      vpn_access:
                        property1:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                        property2:
                          allow_ping: true
                          destination_nat:
                            property1:
                              name: string
                              port: string
                              to: string
                            property2:
                              name: string
                              port: string
                              to: string
                          nat_pool: string
                          routed: true
                          source_nat:
                            exteral_ip: string
                          static_nat:
                            property1:
                              name: string
                              to: string
                            property2:
                              name: string
                              to: string
                          summarized_nat_pool: string
                  oob_ip_config:
                    additionalProperties:
                      ip: string
                      netmask: string
                      network: string
                      type: dynamic
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ip: string
                    netmask: string
                    network: string
                    type: dynamic
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  path_preferences:
                    property1:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                    property2:
                      paths:
                        cost: 0
                        gateway_ip: string
                        internet_access: false
                        name: string
                        networks:
                          - string
                        target_ips:
                          - string
                        type: local
                      strategy: ordered
                  port_config:
                    property1:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                    property2:
                      description: string
                      dsl_config:
                        ppoe_auth: none
                        ppoe_password: string
                        ppoe_username: string
                      dsl_type: string
                      ip_config:
                        dns:
                          - string
                        dns_suffix:
                          - string
                        gateway: string
                        ip: string
                        netmask: string
                        network: string
                        poser_password: string
                        ppoe_username: string
                        pppoe_auth: none
                        type: dhcp
                      lte_apn: string
                      lte_auth: none
                      lte_backup: true
                      lte_password: string
                      lte_username: string
                      name: string
                      networks:
                        - string
                      pci_address: string
                      port_network: string
                      redundant: true
                      reth_idx: 0
                      reth_node: string
                      traffic_shaping:
                        enabled: true
                        max_tx_kbps: 0
                      usage: lan
                      vlan_id: 0
                      vpn_paths:
                        property1:
                          bfd_profile: broadband
                          role: spoke
                        property2:
                          bfd_profile: broadband
                          role: spoke
                      wan_ext_ip: string
                      wan_source_nat:
                        disabled: false
                        nat_pool: 64.2.4.0/30
                      wan_type: broadband
                  routing_policies:
                    property1:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                    property2:
                      terms:
                        - action:
                            accept: true
                            community:
                              - 65003:10
                            exclude_as_path:
                              - "65002"
                            export_communitites:
                              - string
                            local_preference: string
                            prepend_as_path:
                              - "65003"
                          matching:
                            as_path:
                              - "65001"
                            community:
                              - 65001:2
                            network:
                              - string
                            prefix:
                              - 192.168.0.0/16-30
                            protocol:
                              - direct
                            route_exists:
                              route: 192.168.0.0/24
                              vrf_name: default
                  service_policies:
                    - action: allow
                      ewf:
                        - alert_only: true
                          block_message: Access to this URL Category has been blocked
                          enabled: false
                          profille: strict
                      idp:
                        alert_only: string
                        enabled: false
                        profile: strict
                      local_routing: false
                      name: string
                      path_preferences: string
                      servicepolicy_id: a4b81837-7a2f-46c1-bf27-dc8af6edd0a0
                      services:
                        - string
                      tenants:
                        - string
                  tunnel_configs:
                    property1:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                    property2:
                      ike_lifetime: 0
                      ike_mode: main
                      ike_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      ipsec_lifetime: 0
                      ipsec_proposals:
                        - auth_algo: sha1
                          dh_group: "14"
                          enc_algo: aes256
                      local_id: string
                      primary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      probe:
                        interval: 0
                        threshold: 0
                        timeout: 0
                        type: icmp
                      protocol: ipsec
                      provider: zscaler-ipsec
                      psk: string
                      secondary:
                        hosts:
                          - string
                        intern_ips:
                          - string
                        probe_ips:
                          - string
                        wan_names:
                          - string
                      version: "2"
                  type: standalone
          schema:
            items:
              $ref: "#/components/schemas/gatewaytemplate"
            type: array
      description: OK
    Guest:
      content:
        application/json:
          examples:
            example-1:
              value:
                authorized: true
                authorized_expiring_time: 0
                authorized_time: 0
                company: string
                email: user@example.com
                field1: string
                field2: string
                field3: string
                field4: string
                mac: string
                minutes: 0
                name: string
            example-2:
              value:
                authorized: true
                authorized_expiring_time: 1480704955
                authorized_time: 1480704355
                company: abc
                email: john@abc.com
                field1: xxx
                mac: 5684dae9ac8b
                name: John Smith
          schema:
            $ref: "#/components/schemas/guest"
      description: OK
    GuestsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - authorized: true
                  authorized_expiring_time: 0
                  authorized_time: 0
                  company: string
                  email: user@example.com
                  field1: string
                  field2: string
                  field3: string
                  field4: string
                  mac: string
                  minutes: 0
                  name: string
            example-2:
              value:
                - authorized: true
                  authorized_expiring_time: 1480704955
                  authorized_time: 1480704355
                  company: abc
                  email: john@abc.com
                  field1: xxx
                  mac: 5684dae9ac8b
                  name: John Smith
          schema:
            items:
              $ref: "#/components/schemas/guest"
            type: array
      description: OK
    GuestsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1531862583
                limit: 2
                next: /api/v1/sites/8aaba0aa-09cc-44bd-9709-33b98040550c/guests/search?wlan_id=88ffe630-95b8-11e8-b294-346895ed1b7d&end=1531855849.000&limit=2&start=1531776183.0
                results:
                  - ap: 5c5b350e0001
                    auth_method: passphrase
                    authorized_expiring_time: 1531810258.186273
                    authorized_time: 1531782218
                    company: mistsystems
                    email: user@mistsys.com
                    name: john
                    ssid: openNet
                    timestamp: 1531782218
                  - ap: 5c5b350e0001
                    auth_method: facebook
                    authorized_expiring_time: 1531810821.145
                    authorized_time: 1531782632
                    company: xyz inc.
                    email: cool_user@yahoo.com
                    name: John White
                    ssid: openNet
                    timestamp: 1531782632
                start: 1531776183
                total: 14
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    ap:
                      type: string
                    auth_method:
                      type: string
                    authorized_expiring_time:
                      type: number
                    authorized_time:
                      type: number
                    company:
                      type: string
                    email:
                      type: string
                    name:
                      type: string
                    ssid:
                      type: string
                    timestamp:
                      type: number
                  required:
                    - ap
                    - auth_method
                    - authorized_expiring_time
                    - authorized_time
                    - company
                    - email
                    - name
                    - ssid
                    - timestamp
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - next
              - results
              - start
              - total
            type: object
      description: OK
    Id:
      content:
        application/json:
          examples:
            example-1:
              value:
                id: 470f6eca-6276-4993-bfeb-53cbbbba6f48
          schema:
            properties:
              id:
                format: uuid
                readOnly: true
                type: string
            type: object
      description: OK
    InsightMetric:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                interval: 0
                results:
                  - {}
                start: 0
          schema:
            properties:
              end:
                type: integer
              interval:
                type: integer
              results:
                description: results depends on the `metric`
                items:
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - end
              - interval
              - results
              - start
            type: object
      description: OK
    InsightRogue:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                limit: 100
                next: /api/v1/sites/a3eda150-ab3f-11e4-aa18-13e21dd250cc/rogues?start=1498482000&end=1498485600&limit=10&interval=1h&type=others
                results:
                  - ap_mac: 5c5b350e021c
                    avg_rssi: -72
                    bssid: d8-97-ba-76-b5-aa
                    channel: "11"
                    num_aps: 4
                    ssid: xfinitywifi
                    times_heard: 8
                start: 1428939600
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                description: link to next set of results. If more results aren’t present, next is null.
                type: string
              results:
                items:
                  properties:
                    ap_mac:
                      description: mac of the device that had strongest signal strength for ssid/bssid pair
                      type: string
                    avg_rssi:
                      description: average signal strength of ap_mac for ssid/bssid pair
                      type: number
                    bssid:
                      description: bssid of the network detected as threat
                      type: string
                    channel:
                      description: channel over which ap_mac heard ssid/bssid pair
                      type: string
                    delta_x:
                      description: X position relative to the reporting AP (`ap_mac`)
                      type: number
                    delta_y:
                      description: Y position relative to the reporting AP (`ap_mac`)
                      type: number
                    num_aps:
                      description: num of aps that heard the ssid/bssid pair
                      type: integer
                    seen_on_lan:
                      description: whether the reporting AP see a wireless client (on LAN) connecting to it
                      type: boolean
                    ssid:
                      description: ssid of the network detected as threat
                      type: string
                    times_heard:
                      description: represents number of times the pair was heard in the interval. Each count roughly corresponds to a minute.
                      type: integer
                  required:
                    - ap_mac
                    - avg_rssi
                    - bssid
                    - channel
                    - num_aps
                  type: object
                minItems: 0
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - end
              - limit
              - results
              - start
            type: object
      description: OK
    InsightRogueClients:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                limit: 100
                next: /api/v1/sites/a3eda150-ab3f-11e4-aa18-13e21dd250cc/rogues/clients?start=1498482000&end=1498485600&limit=10&interval=1h
                results:
                  - annotation: whitelist
                    ap_mac: 5c-5b-35-0e-02-1c
                    avg_rssi: -63.9
                    band: "5"
                    bssid: d8-97-ba-76-b5-aa
                    client_mac: 34-f8-32-13-57-c2
                    num_aps: 2
                start: 1428939600
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    annotation:
                      type: string
                    ap_mac:
                      type: string
                    avg_rssi:
                      type: number
                    band:
                      type: string
                    bssid:
                      type: string
                    client_mac:
                      type: string
                    num_aps:
                      type: integer
                  required:
                    - bssid
                    - ap_mac
                    - client_mac
                    - num_aps
                    - band
                    - avg_rssi
                    - annotation
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - start
              - end
              - limit
              - next
              - results
            type: object
      description: OK
    Licence:
      content:
        application/json:
          examples:
            example-1:
              value:
                amendments:
                  - created_time: 1644684842
                    end_time: 1744156799
                    id: ff0a14f6-1234-5678-90ab-c8e64d4bc6c6
                    modified_time: 1644684842
                    quantity: -1
                    start_time: 1632873600
                    subscription_id: VNA-000000af
                    type: SUB-VNA
                  - created_time: 1644684842
                    end_time: 1744156799
                    id: c1c28812-1234-5678-90ab-dc95680da61e
                    modified_time: 1644684842
                    quantity: -1
                    start_time: 1632873600
                    subscription_id: MAN-000008be
                    type: SUB-MAN
                  - created_time: 1644684842
                    end_time: 1744243199
                    id: 96c0a41f-1234-5678-90ab-afe74817e9fd
                    modified_time: 1644684842
                    quantity: -1
                    start_time: 1586476800
                    subscription_id: EX24-000000bc
                    type: SUB-EX24
                entitled:
                  SUB-ENG: 26
                  SUB-EX24: 9
                  SUB-MAN: 26
                  SUB-VNA: 26
                licenses:
                  - created_time: 1555353534
                    end_time: 1586822399
                    id: 693a41a6-1234-5678-90ab-f53dbd3a31c0
                    modified_time: 1555353534
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 2
                    remaining_quantity: 0
                    start_time: 1555286400
                    subscription_id: VNA-000000aa
                    type: SUB-VNA
                  - created_time: 1576132516
                    end_time: 1586822399
                    id: 656607cf-1234-5678-90ab-fc9035614ea5
                    modified_time: 1576132516
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 8
                    remaining_quantity: 0
                    start_time: 1576022400
                    subscription_id: VNA-000000ab
                    type: SUB-VNA
                  - created_time: 1579204568
                    end_time: 1730764800
                    id: db50d0bc-1234-5678-90ab-e439958cb06b
                    modified_time: 1579204568
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 2
                    remaining_quantity: 2
                    start_time: 1572998400
                    subscription_id: MAN-000000ac
                    type: SUB-MAN
                  - created_time: 1579204568
                    end_time: 1730764800
                    id: 2ff9e84a-1234-5678-90ab-fb9ec0726e01
                    modified_time: 1579204568
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 2
                    remaining_quantity: 2
                    start_time: 1572998400
                    subscription_id: ENG-000000ad
                    type: SUB-ENG
                  - created_time: 1579204568
                    end_time: 1730764800
                    id: 16df7ea6-1234-5678-90ab-78018cd4024d
                    modified_time: 1579204568
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 2
                    remaining_quantity: 2
                    start_time: 1572998400
                    subscription_id: VNA-000000ae
                    type: SUB-VNA
                  - created_time: 1586237081
                    end_time: 1744243199
                    id: 1b6f68d5-1234-5678-90ab-70d3e6d18c73
                    modified_time: 1586237081
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 14
                    remaining_quantity: 14
                    start_time: 1586563200
                    subscription_id: VNA-000000af
                    type: SUB-VNA
                  - created_time: 1586237097
                    end_time: 1744243199
                    id: 1375c9bf-1234-5678-90ab-9c636708c89e
                    modified_time: 1586237097
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 14
                    remaining_quantity: 14
                    start_time: 1586563200
                    subscription_id: MAN-000000ba
                    type: SUB-MAN
                  - created_time: 1586237137
                    end_time: 1744243199
                    id: 5974e979-1234-5678-90ab-438f833ec1c9
                    modified_time: 1586237137
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 14
                    remaining_quantity: 14
                    start_time: 1586563200
                    subscription_id: ENG-000000bb
                    type: SUB-ENG
                  - created_time: 1629947267
                    end_time: 1744243199
                    id: 340a9cb3-1234-5678-90ab-b009344dbf3c
                    modified_time: 1629947267
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 10
                    remaining_quantity: 9
                    start_time: 1586476800
                    subscription_id: EX24-000000bc
                    type: SUB-EX24
                  - created_time: 1632941870
                    end_time: 1744156799
                    id: 9b599b0f-1234-5678-90ab-406081b58e7f
                    modified_time: 1632941870
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 10
                    remaining_quantity: 10
                    start_time: 1632873600
                    subscription_id: ENG-000000bd
                    type: SUB-ENG
                  - created_time: 1632941882
                    end_time: 1744156799
                    id: d6d8ead3-1234-5678-90ab-98badeac7287
                    modified_time: 1632941882
                    order_id: "00000000"
                    org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
                    quantity: 11
                    remaining_quantity: 9
                    start_time: 1632873600
                    subscription_id: MAN-000008be
                    type: SUB-MAN
                summary:
                  SUB-ENG: 18
                  SUB-EX24: 3
                  SUB-MAN: 22
                  SUB-VNA: 20
          schema:
            $ref: "#/components/schemas/license"
      description: OK
    LicenceUsage:
      content:
        application/json:
          examples:
            example-1:
              value:
                - fully_loaded:
                    SUB-LOC: 30
                    SUB-MAN: 80
                  num_devices: 80
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                  usages:
                    SUB-LOC: 30
                    SUB-MAN: 60
          schema:
            items:
              properties:
                for_site:
                  readOnly: true
                  type: boolean
                fully_loaded:
                  additionalProperties:
                    readOnly: true
                    type: integer
                  description: The property key is the service name (e.g. "SUB-MAN")
                  readOnly: true
                  type: object
                num_devices:
                  readOnly: true
                  type: integer
                site_id:
                  format: uuid
                  readOnly: true
                  type: string
                usages:
                  additionalProperties:
                    readOnly: true
                    type: integer
                  description: subscriptions and their quantities. The property key is the service name (e.g. "SUB-MAN")
                  readOnly: true
                  type: object
              required:
                - num_devices
                - site_id
                - usages
              type: object
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    LogsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                limit: 100
                results:
                  - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                    admin_name: test@mistsys.com
                    id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                    message: TEST AUDIT
                    org_id: 469f6eca-6276-4993-bfeb-53cbbbba6f58
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    timestamp: 1431382121
                start: 1428939600
                total: 135
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    admin_id:
                      description: admin id
                      format: uuid
                      nullable: true
                      readOnly: true
                      type: string
                    admin_name:
                      description: name of the admin that performs the action
                      nullable: true
                      readOnly: true
                      type: string
                    after:
                      description: field values after the change
                      readOnly: true
                      type: object
                    before:
                      description: field values prior to the change
                      readOnly: true
                      type: object
                    for_site:
                      readOnly: true
                      type: boolean
                    id:
                      format: uuid
                      readOnly: true
                      type: string
                    message:
                      description: log message
                      readOnly: true
                      type: string
                    org_id:
                      description: org id
                      format: uuid
                      readOnly: true
                      type: string
                    site_id:
                      description: site id
                      format: uuid
                      readOnly: true
                      type: string
                    timestamp:
                      description: start time, in epoch
                      readOnly: true
                      type: number
                  required:
                    - admin_id
                    - admin_name
                    - message
                    - org_id
                    - site_id
                    - timestamp
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    MacsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                macs:
                  - 18-65-90-de-f4-c6
                  - 84-89-ad-5d-69-0d
          schema:
            properties:
              macs:
                items:
                  type: string
                type: array
            type: object
      description: OK
    Map:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/map"
      description: OK
    MapImport:
      content:
        application/json:
          examples:
            example-assigned_and_placed:
              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
            example-assigned_named_and_placed:
              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
            example-placed:
              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
          schema:
            properties:
              aps:
                items:
                  properties:
                    action:
                      enum:
                        - placed
                        - assigned-placed
                        - named-placed
                        - assigned-named-placed
                        - ignored
                      type: string
                    floorplan_id:
                      format: uuid
                      type: string
                    height:
                      type: number
                    mac:
                      type: string
                    map_id:
                      format: uuid
                      type: string
                    orientation:
                      type: number
                    reason:
                      type: string
                  required:
                    - mac
                    - action
                    - map_id
                    - floorplan_id
                    - orientation
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              floorplans:
                items:
                  properties:
                    action:
                      type: string
                    id:
                      format: uuid
                      type: string
                    map_id:
                      format: uuid
                      type: string
                    name:
                      type: string
                    reason:
                      type: string
                  required:
                    - id
                    - name
                    - action
                    - map_id
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              for_site:
                readOnly: true
                type: boolean
              site_id:
                format: uuid
                type: string
              summary:
                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
            required:
              - site_id
              - aps
              - floorplans
              - summary
            type: object
      description: OK
    MapsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  flags: {}
                  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
          schema:
            items:
              $ref: "#/components/schemas/map"
            type: array
      description: OK
    Ml:
      content:
        application/json:
          examples:
            example-1:
              value:
                - current:
                    Android:
                      completed: 36
                      int: -6
                      level: 3
                      ple: -3
                      quality: "4"
                      src: device
                      timestamp: 1442854794
                    iOS:
                      completed: 16
                      int: -6
                      level: 6
                      ple: -3
                      quality: "2"
                      src: default
                      timestamp: 1442854704
                    iPod:
                      int: -10
                      overwrite: true
                      ple: -5
                      src: overwrite
                  device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                - beacon_id: 7913f032-aab4-c3ae-e83e-5a2756ef4d40
                  current:
                    iOS:
                      completed: 16
                      int: -6
                      level: 6
                      ple: -3
                      quality: last
                      src: device
                      timestamp: 1442854704
          schema:
            items:
              type: object
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    MlEvents:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                interval: 600
                start: 1428939600
                updates:
                  - client_type: iOS
                    completed: 6
                    int: -6
                    level: 0
                    ple: -3
                    timestamp: 1442854794
                  - client_type: iOS
                    completed: 4
                    int: -4
                    level: 0
                    ple: -2
                    timestamp: 1442854796
                  - client_type: iOS
                    completed: 2
                    int: -2
                    level: 0
                    ple: -1
                    timestamp: 1442854798
          schema:
            properties:
              end:
                type: integer
              interval:
                type: integer
              start:
                type: integer
              updates:
                items:
                  properties:
                    client_type:
                      type: string
                    completed:
                      type: number
                    int:
                      type: number
                    level:
                      type: number
                    ple:
                      type: number
                    timestamp:
                      type: number
                  required:
                    - ple
                    - client_type
                    - level
                    - int
                    - completed
                    - timestamp
                minItems: 1
                type: array
                uniqueItems: true
            required:
              - start
              - end
              - interval
              - updates
            type: object
      description: OK
    Msp:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
          schema:
            $ref: "#/components/schemas/Msp"
      description: OK
    MxEdgeUpgrade:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mxedge_upgrade_response"
      description: Example response
    MxEdgeUpgradesArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/mxedge_upgrade_response"
            type: array
      description: Example response
    Mxcluster:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                for_site: true
                id: 468f6eca-6276-4993-bfeb-53cbbbba6f68
                modified_time: 0
                name: string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                radsec:
                  acct_servers:
                    - host: string
                      port: 1813
                      secret: string
                  auth_servers:
                    - host: string
                      port: 1812
                      secret: string
                  enabled: true
                  server_selection: ordered
                radsec_tls:
                  keypair: string
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                tunterm_ap_subnets:
                  - string
                tunterm_dhcpd_config:
                  enabled: false
                  property1:
                    enabled: false
                    servers:
                      - string
                    type: relay
                  property2:
                    enabled: false
                    servers:
                      - string
                    type: relay
                  servers:
                    - string
                  type: relay
                tunterm_extra_routes:
                  property1:
                    via: string
                  property2:
                    via: string
                tunterm_hosts:
                  - string
                tunterm_monitoring:
                  - host: string
                    port: 0
                    protocol: arp
                    timeout: 300
          schema:
            $ref: "#/components/schemas/mxcluster"
      description: OK
    MxclustersArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  for_site: true
                  id: 467f6eca-6276-4993-bfeb-53cbbbba6f78
                  modified_time: 0
                  name: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  radsec:
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    enabled: true
                    server_selection: ordered
                  radsec_tls:
                    keypair: string
                  site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                  tunterm_ap_subnets:
                    - string
                  tunterm_dhcpd_config:
                    enabled: false
                    property1:
                      enabled: false
                      servers:
                        - string
                      type: relay
                    property2:
                      enabled: false
                      servers:
                        - string
                      type: relay
                    servers:
                      - string
                    type: relay
                  tunterm_extra_routes:
                    property1:
                      via: string
                    property2:
                      via: string
                  tunterm_hosts:
                    - string
                  tunterm_monitoring:
                    - host: string
                      port: 0
                      protocol: arp
                      timeout: 300
          schema:
            items:
              $ref: "#/components/schemas/mxcluster"
            type: array
      description: OK
    Mxedge:
      content:
        application/json:
          examples:
            example-1:
              value:
                id: 95ddd29a-6a3c-929e-a431-51a5b09f36a6
                magic: L-NpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
                model: ME-100
                mxagent_registered: true
                mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
                mxedge_mgmt:
                  mist_password: MIST_PASSWORD
                  root_password: ROOT_PASSWORD
                name: Guest
                ntp_servers: []
                oob_ip_config:
                  dns:
                    - 8.8.8.8
                    - 4.4.4.4
                  gateway: 10.2.1.254
                  ip: 10.2.1.10
                  netmask: 255.255.255.0
                  type: static
                tunterm_dhcpd_config:
                  "2":
                    enabled: true
                    servers:
                      - 11.2.3.44
                  enabled: false
                  servers:
                    - 11.2.3.4
                tunterm_extra_routes:
                  11.0.0.0/8:
                    via: 10.3.3.1
                tunterm_ip_config:
                  dns:
                    - 8.8.8.8
                  dns_suffix:
                    - .mist.local
                  gateway: 10.2.1.254
                  ip: 10.2.1.1
                  netmask: 255.255.255.0
                tunterm_monitoring:
                  - host: 10.2.8.15
                    port: 80
                    protocol: ping
                    timeout: 300
                tunterm_other_ip_configs:
                  "5":
                    ip: 10.3.3.1
                    netmask: 255.255.255.0
                tunterm_port_config:
                  downstream_ports:
                    - "3"
                  separate_upstream_downstream: true
                  upstream_port_vlan_id: 30
                  upstream_ports:
                    - "0"
                    - "1"
                    - "2"
                tunterm_registered: true
                tunterm_switch_config:
                  "0":
                    port_vlan_id: 1
                    vlan_ids:
                      - 1
                      - 3055
                  enabled: true
          schema:
            $ref: "#/components/schemas/mxedge"
      description: OK
    MxedgeStats:
      content:
        application/json:
          examples:
            example-1:
              value:
                cpu_stat:
                  cpus:
                    cpu0:
                      idle: 79
                      interrupt: 0
                      system: 4
                      usage: 20
                      user: 16
                    cpu1:
                      idle: 93
                      interrupt: 0
                      system: 4
                      usage: 6
                      user: 1
                  idle: 87
                  interrupt: 0
                  system: 5
                  usage: 12
                  user: 7
                ext_ip: 116.187.144.16
                id: 387804a7-3474-85ce-15a2-f9a9684c9c90
                ip_stat:
                  ip: 172.16.5.3
                  ips:
                    ens192: 172.16.5.3/24,fe81::20c:29ff:fef8:d18e/64
                  tunterm_stat:
                    monitoring_failed: false
                lag_stat:
                  lag0:
                    active_ports:
                      - "0"
                      - "1"
                last_seen: 1547437078
                magic: ExNpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
                memory_stats:
                  active: 1061085184
                  available: 4124860416
                  buffers: 789495808
                  cached: 718016512
                  free: 2818838528
                  inactive: 458158080
                  swap_cached: 0
                  swap_free: 8161062912
                  swap_total: 8161062912
                  total: 7947616256
                  usage: 65
                model: ME-S2019
                mxagent_registered: false
                mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
                name: Guest
                num_tunnels: 31
                port_stat:
                  eth0:
                    full_duplex: true
                    lldp_stats:
                      mgmt_addr: 122.16.3.11
                      port_desc: GigabitEthernet4/0/16
                      port_id: "\x05Gi4/0/16"
                      system_desc: Cisco IOS Software
                      system_name: ME-DC2-DIS-SW
                    rx_bytes: 2056
                    rx_errors: 0
                    rx_pkts: 670
                    speed: 1000
                    tx_bytes: 2056
                    tx_pkts: 670
                    up: true
                  eth1:
                    up: false
                  module:
                    up: false
                status: connected
                tunterm_registered: false
                uptime: 884221
                version: 0.1.2
                virtualization_type: VirtualizationVMware
            example-2:
              value:
                cpu_stat:
                  cpus:
                    property1:
                      idle: 0
                      interrupt: 0
                      system: 0
                      usage: 0
                      user: 0
                    property2:
                      idle: 0
                      interrupt: 0
                      system: 0
                      usage: 0
                      user: 0
                  idle: 0
                  interrupt: 0
                  system: 0
                  usage: 0
                  user: 0
                ext_ip: string
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                ip_stat:
                  ip: string
                  ips:
                    property1: string
                    property2: string
                lag_stat:
                  property1:
                    active_ports:
                      - string
                  property2:
                    active_ports:
                      - string
                last_seen: 0
                magic: string
                memory_stats:
                  active: 0
                  available: 0
                  buffers: 0
                  cached: 0
                  free: 0
                  inactive: 0
                  swap_cached: 0
                  swap_free: 0
                  swap_total: 0
                  total: 0
                  usage: 0
                model: string
                mxagent_registered: true
                mxcluster_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                num_tunnels: 0
                port_stat:
                  property1:
                    full_duplex: true
                    lldp_stats:
                      mgmt_addr: string
                      port_desc: string
                      port_id: string
                      system_desc: string
                      system_name: string
                    rx_bytes: 0
                    rx_errors: 0
                    rx_pkts: 0
                    speed: 0
                    tx_bytes: 0
                    tx_pkts: 0
                    up: true
                  property2:
                    full_duplex: true
                    lldp_stats:
                      mgmt_addr: string
                      port_desc: string
                      port_id: string
                      system_desc: string
                      system_name: string
                    rx_bytes: 0
                    rx_errors: 0
                    rx_pkts: 0
                    speed: 0
                    tx_bytes: 0
                    tx_pkts: 0
                    up: true
                status: string
                tunterm_registered: true
                tunterm_stat:
                  monitoring_failed: true
                uptime: 0
                version: string
                virtualization_type: string
          schema:
            $ref: "#/components/schemas/stats_mxedge"
      description: OK
    MxedgeUpdateInfo:
      content:
        application/json:
          examples:
            example-1:
              value:
                - default: true
                  package: mxagent
                  version: 2.4.100
                - package: tunterm
                  version: 1.0.0
          schema:
            items:
              properties:
                default:
                  type: boolean
                package:
                  type: string
                version:
                  type: string
              required:
                - package
                - version
              type: object
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    MxedgesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - cpu_stat:
                    cpus:
                      cpu0:
                        idle: 79
                        interrupt: 0
                        system: 4
                        usage: 20
                        user: 16
                      cpu1:
                        idle: 93
                        interrupt: 0
                        system: 4
                        usage: 6
                        user: 1
                    idle: 87
                    interrupt: 0
                    system: 5
                    usage: 12
                    user: 7
                  ext_ip: 116.187.144.16
                  id: 387804a7-3474-85ce-15a2-f9a9684c9c90
                  ip_stat:
                    ip: 172.16.5.3
                    ips:
                      ens192: 172.16.5.3/24,fe81::20c:29ff:fef8:d18e/64
                  lag_stat:
                    lag0:
                      active_ports:
                        - "0"
                        - "1"
                  last_seen: 1547437078
                  magic: ExNpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
                  memory_stats:
                    active: 1061085184
                    available: 4124860416
                    buffers: 789495808
                    cached: 718016512
                    free: 2818838528
                    inactive: 458158080
                    swap_cached: 0
                    swap_free: 8161062912
                    swap_total: 8161062912
                    total: 7947616256
                    usage: 65
                  model: ME-S2019
                  mxagent_registered: false
                  mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
                  name: Guest
                  num_tunnels: 31
                  port_stat:
                    eth0:
                      full_duplex: true
                      lldp_stats:
                        mgmt_addr: 122.16.3.11
                        port_desc: GigabitEthernet4/0/16
                        port_id: "\x05Gi4/0/16"
                        system_desc: Cisco IOS Software
                        system_name: ME-DC2-DIS-SW
                      rx_bytes: 2056
                      rx_errors: 0
                      rx_pkts: 670
                      speed: 1000
                      tx_bytes: 2056
                      tx_pkts: 670
                      up: true
                    eth1:
                      up: false
                    module:
                      up: false
                  status: connected
                  tunterm_registered: false
                  tunterm_stat:
                    monitoring_failed: false
                  uptime: 884221
                  version: 0.1.2
                  virtualization_type: VirtualizationVMware
          schema:
            items:
              $ref: "#/components/schemas/mxedge"
            type: array
      description: OK
    MxedgesArrayStats:
      content:
        application/json:
          examples:
            example-1:
              value:
                - cpu_stat:
                    cpus:
                      property1:
                        idle: 0
                        interrupt: 0
                        system: 0
                        usage: 0
                        user: 0
                      property2:
                        idle: 0
                        interrupt: 0
                        system: 0
                        usage: 0
                        user: 0
                    idle: 0
                    interrupt: 0
                    system: 0
                    usage: 0
                    user: 0
                  ext_ip: string
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ip_stat:
                    ip: string
                    ips:
                      property1: string
                      property2: string
                  lag_stat:
                    property1:
                      active_ports:
                        - string
                    property2:
                      active_ports:
                        - string
                  last_seen: 0
                  magic: string
                  memory_stats:
                    active: 0
                    available: 0
                    buffers: 0
                    cached: 0
                    free: 0
                    inactive: 0
                    swap_cached: 0
                    swap_free: 0
                    swap_total: 0
                    total: 0
                    usage: 0
                  model: string
                  mxagent_registered: true
                  mxcluster_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  num_tunnels: 0
                  port_stat:
                    property1:
                      full_duplex: true
                      lldp_stats:
                        mgmt_addr: string
                        port_desc: string
                        port_id: string
                        system_desc: string
                        system_name: string
                      rx_bytes: 0
                      rx_errors: 0
                      rx_pkts: 0
                      speed: 0
                      tx_bytes: 0
                      tx_pkts: 0
                      up: true
                    property2:
                      full_duplex: true
                      lldp_stats:
                        mgmt_addr: string
                        port_desc: string
                        port_id: string
                        system_desc: string
                        system_name: string
                      rx_bytes: 0
                      rx_errors: 0
                      rx_pkts: 0
                      speed: 0
                      tx_bytes: 0
                      tx_pkts: 0
                      up: true
                  status: string
                  tunterm_registered: true
                  tunterm_stat:
                    monitoring_failed: true
                  uptime: 0
                  version: string
                  virtualization_type: string
          schema:
            items:
              $ref: "#/components/schemas/stats_mxedge"
            type: array
      description: OK
    Mxtunnel:
      content:
        application/json:
          examples:
            example-1:
              value:
                cluster_ids:
                  - string
                created_time: 0
                for_site: true
                hello_interval: 60
                hello_retries: 7
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                ipsec:
                  dns_servers:
                    - string
                  enabled: true
                  extra_routes:
                    - dest: string
                      next_hop: 192.168.0.1
                  split_tunnel: true
                  use_mxedge: true
                modified_time: 0
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                vlan_ids:
                  - 0
          schema:
            $ref: "#/components/schemas/mxtunnel"
      description: OK
    MxtunnelsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - hello_interval: 60
                  hello_retries: 3
                  ipsec:
                    dns_servers:
                      - 172.16.0.8
                    enabled: true
                    extra_routes:
                      - dest: 172.16.0.0/12
                        next_hop: 172.16.0.1
                    split_tunnel: true
                  mxcluster_ids:
                    - 572586b7-f97b-a22b-526c-8b97a3f609c4
                  name: HQ
                  protocol: udp
                  vlan_ids:
                    - 3
                    - 4
                    - 5
          schema:
            items:
              $ref: "#/components/schemas/mxtunnel"
            type: array
      description: OK
    NacRule:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/nac_rule"
      description: Example response
    NacRulesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - action: allow
                  apply_tags:
                    - string
                  created_time: 0
                  id: 455f6eca-6276-4993-bfeb-53cbbbba6f08
                  matching:
                    auth_type: cert
                    nactags:
                      - string
                    port_types:
                      - wireless
                    site_ids:
                      - 454f6eca-6276-4993-bfeb-53cbbbba6f08
                    sitegroup_ids:
                      - 453f6eca-6276-4993-bfeb-53cbbbba6f08
                  modified_time: 0
                  name: string
                  not_matching:
                    auth_type: cert
                    nactags:
                      - string
                    port_types:
                      - wireless
                    site_ids:
                      - 452f6eca-6276-4993-bfeb-53cbbbba6f08
                    sitegroup_ids:
                      - 451f6eca-6276-4993-bfeb-53cbbbba6f08
                  order: 0
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          schema:
            items:
              $ref: "#/components/schemas/nac_rule"
            type: array
      description: Example response
    NacTag:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/nac_tag"
      description: Example response
    NacTagsArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/nac_tag"
            type: array
      description: Example response
    Network:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                subnet: string
                vlan_id: 1
          schema:
            $ref: "#/components/schemas/network"
      description: OK
    NetworksArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  subnet: string
                  vlan_id: 1
          schema:
            items:
              $ref: "#/components/schemas/network"
            type: array
      description: OK
    Networktemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                dns_servers:
                  - string
                dns_suffix:
                  - string
                group_tags: {}
                id: 497f6eca-6276-5002-bfeb-53cbbbba6f08
                modified_time: 0
                name: string
                networks:
                  property1:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ospf_interface_type: string
                    subnet: string
                    vlan_id: 0
                    zone: string
                  property2:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ospf_interface_type: string
                    subnet: string
                    vlan_id: 0
                    zone: string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                port_usages:
                  dynamic:
                    mode: dynamic
                    reset_default_when: link_down
                    rules:
                      - equals: string
                        equals_any:
                          - string
                        expression: string
                        src: lldp_chassis_id
                        usage: string
                  property1:
                    all_networks: false
                    allow_dhcpd: true
                    bypass_auth_when_server_down: true
                    description: string
                    disable_autoneg: false
                    disabled: false
                    duplex: auto
                    dynamic_vlan:
                      default_network: 0
                      enabled: true
                      networks:
                        property1: 0
                        property2: 0
                      type: standard
                    enable_mac_auth: true
                    enable_qos: true
                    guest_network: string
                    mac_auth_only: true
                    mac_limit: 0
                    mode: access
                    mtu: 0
                    networks:
                      - string
                    persist_mac: false
                    poe_disabled: false
                    port_auth: string
                    port_network: string
                    rejected_network: true
                    speed: string
                    storm_control:
                      no_broadcast: false
                      no_multicast: false
                      no_registered_multicast: false
                      no_unknown_unicast: false
                      percentage: 80
                    stp_edge: true
                    voip_network: string
                  property2:
                    all_networks: false
                    allow_dhcpd: true
                    bypass_auth_when_server_down: true
                    description: string
                    disable_autoneg: false
                    disabled: false
                    duplex: auto
                    dynamic_vlan:
                      default_network: 0
                      enabled: true
                      networks:
                        property1: 0
                        property2: 0
                      type: standard
                    enable_mac_auth: true
                    enable_qos: true
                    guest_network: string
                    mac_auth_only: true
                    mac_limit: 0
                    mode: access
                    mtu: 0
                    networks:
                      - string
                    persist_mac: false
                    poe_disabled: false
                    port_auth: string
                    port_network: string
                    rejected_network: true
                    speed: string
                    storm_control:
                      no_broadcast: false
                      no_multicast: false
                      no_registered_multicast: false
                      no_unknown_unicast: false
                      percentage: 80
                    stp_edge: true
                    voip_network: string
                radius_config:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      keywrap_enabled: true
                      keywrap_format: string
                      keywrap_kek: string
                      keywrap_mack: string
                      port: 1813
                      secret: string
                  auth_servers:
                    - host: string
                      keywrap_enabled: true
                      keywrap_format: string
                      keywrap_kek: string
                      keywrap_mack: string
                      port: 1812
                      secret: string
                  auth_servers_retries: 3
                  auth_servers_timeout: 5
                  coa_enabled: false
                  coa_port: 3799
                  network: string
                  source_ip: string
                snmp_config:
                  client_list:
                    - client_list_name: clist-1
                      clients:
                        - 151.140.101.218/32
                  contact: cns@juniper.net
                  description: Juniper QFX Series Switch - 1K_5LA
                  engine_id: local
                  location: Las Vegas, NV
                  name: TGH-1K-QFX10K
                  trap_groups:
                    - categories:
                        - authentication
                      group_name: profiler
                      targets:
                        - 172.29.158.19
                      version: v2
                  v2c_config:
                    - authorization: read-only
                      client_list_name: clist-1
                      community_name: abc123
                  v3_config:
                    notify:
                      - name: string
                        tag: string
                        type: trap
                    notify_filter:
                      - contents:
                          - include: true
                            oid: 1.3.6.1.4.1
                        profile_name: string
                    target_address:
                      - address: string
                        address_mask: string
                        port: 161
                        tag_list: string
                        target_address_name: string
                        target_parameters: string
                    target_parameters:
                      - message_processing_model: v1
                        name: string
                        notify_filter: string
                        security_level: authentication
                        security_model: usm
                        security_name: m01620
                    usm:
                      engine-id: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
                      engine_type: remote_engine
                      users:
                        - authentication_password: strings
                          authentication_type: authentication-md5
                          encryption_password: stringst
                          encryption_type: privacy-aes128
                          name: string
                    vacm:
                      access:
                        - group_name: string
                          prefix_list:
                            - context_prefix: iil
                              notify_view: all
                              read_view: all
                              security_level: privacy
                              security_model: any
                              type: default_context_prefix
                              write_view: all
                      security_to_group:
                        content:
                          - group: string
                            security_name: string
                        security_model: usm
                  views:
                    include: true
                    oid: 1.3.6.1
                    view_name: all
                switch_matching:
                  enable: true
                  rules:
                    - additional_config_cmds:
                        - string
                      match_role: string
                      name: string
                      port_config:
                        property1:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          disable_autoneg: false
                          duplex: auto
                          dynamic_usage: string
                          esilag: true
                          mtu: 1514
                          no_local_overwrite: true
                          poe_disabled: false
                          speed: auto
                          usage: string
                        property2:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          disable_autoneg: false
                          duplex: auto
                          dynamic_usage: string
                          esilag: true
                          mtu: 1514
                          no_local_overwrite: true
                          poe_disabled: false
                          speed: auto
                          usage: string
                      property1: string
                      property2: string
                      switch_mgmt:
                        config_revert_timer: 10
                        dhcp_option_fqdn: false
                        mxedge_proxy_host: string
                        mxedge_proxy_port: 2222
                        use_mxedge_proxy: false
          schema:
            $ref: "#/components/schemas/networktemplate"
      description: OK
    NetworktemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  dns_servers:
                    - string
                  dns_suffix:
                    - string
                  group_tags: {}
                  id: 497f6eca-6276-5003-bfeb-53cbbbba6f08
                  modified_time: 0
                  name: string
                  networks:
                    property1:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                    property2:
                      dns:
                        - string
                      dns_suffix:
                        - string
                      gateway: string
                      ospf_interface_type: string
                      subnet: string
                      vlan_id: 0
                      zone: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  port_usages:
                    dynamic:
                      mode: dynamic
                      reset_default_when: link_down
                      rules:
                        - equals: string
                          equals_any:
                            - string
                          expression: string
                          src: lldp_chassis_id
                          usage: string
                    property1:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                    property2:
                      all_networks: false
                      allow_dhcpd: true
                      bypass_auth_when_server_down: true
                      description: string
                      disable_autoneg: false
                      disabled: false
                      duplex: auto
                      dynamic_vlan:
                        default_network: 0
                        enabled: true
                        networks:
                          property1: 0
                          property2: 0
                        type: standard
                      enable_mac_auth: true
                      enable_qos: true
                      guest_network: string
                      mac_auth_only: true
                      mac_limit: 0
                      mode: access
                      mtu: 0
                      networks:
                        - string
                      persist_mac: false
                      poe_disabled: false
                      port_auth: string
                      port_network: string
                      rejected_network: true
                      speed: string
                      storm_control:
                        no_broadcast: false
                        no_multicast: false
                        no_registered_multicast: false
                        no_unknown_unicast: false
                        percentage: 80
                      stp_edge: true
                      voip_network: string
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        keywrap_enabled: true
                        keywrap_format: string
                        keywrap_kek: string
                        keywrap_mack: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  snmp_config:
                    client_list:
                      - client_list_name: clist-1
                        clients:
                          - 151.140.101.218/32
                    contact: cns@juniper.net
                    description: Juniper QFX Series Switch - 1K_5LA
                    engine_id: local
                    location: Las Vegas, NV
                    name: TGH-1K-QFX10K
                    trap_groups:
                      - categories:
                          - authentication
                        group_name: profiler
                        targets:
                          - 172.29.158.19
                        version: v2
                    v2c_config:
                      - authorization: read-only
                        client_list_name: clist-1
                        community_name: abc123
                    v3_config:
                      notify:
                        - name: string
                          tag: string
                          type: trap
                      notify_filter:
                        - contents:
                            - include: true
                              oid: 1.3.6.1.4.1
                          profile_name: string
                      target_address:
                        - address: string
                          address_mask: string
                          port: 161
                          tag_list: string
                          target_address_name: string
                          target_parameters: string
                      target_parameters:
                        - message_processing_model: v1
                          name: string
                          notify_filter: string
                          security_level: authentication
                          security_model: usm
                          security_name: m01620
                      usm:
                        engine-id: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
                        engine_type: remote_engine
                        users:
                          - authentication_password: strings
                            authentication_type: authentication-md5
                            encryption_password: stringst
                            encryption_type: privacy-aes128
                            name: string
                      vacm:
                        access:
                          - group_name: string
                            prefix_list:
                              - context_prefix: iil
                                notify_view: all
                                read_view: all
                                security_level: privacy
                                security_model: any
                                type: default_context_prefix
                                write_view: all
                        security_to_group:
                          content:
                            - group: string
                              security_name: string
                          security_model: usm
                    views:
                      include: true
                      oid: 1.3.6.1
                      view_name: all
                  switch_matching:
                    enable: true
                    rules:
                      - additional_config_cmds:
                          - string
                        match_role: string
                        name: string
                        port_config:
                          property1:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                          property2:
                            ae_disable_lacp: true
                            ae_idx: 0
                            aggregated: false
                            description: string
                            disable_autoneg: false
                            duplex: auto
                            dynamic_usage: string
                            esilag: true
                            mtu: 1514
                            no_local_overwrite: true
                            poe_disabled: false
                            speed: auto
                            usage: string
                        property1: string
                        property2: string
                        switch_mgmt:
                          config_revert_timer: 10
                          dhcp_option_fqdn: false
                          mxedge_proxy_host: string
                          mxedge_proxy_port: 2222
                          use_mxedge_proxy: false
          schema:
            items:
              $ref: "#/components/schemas/networktemplate"
            type: array
      description: OK
    OK:
      content:
        application/json:
          schema:
            type: object
      description: OK
    OauthAppLinkStatus:
      content:
        application/json:
          examples:
            Example 1:
              value:
                accounts:
                  - account_id: KkEM7orQSIWHZNFzwMLuRA
                    last_status: success
                    last_sync: 1665465339000
                    linked_by: Testname1
                    name: Test Compay1 Ltd
                  - account_id: kojzWgIJQ0ujR73VvydOdg
                    error: OAuth token refresh failed, please re-link zoom
                    last_status: failed
                    last_sync: 1665465346000
                    linked_by: Testname2
                    name: Test Compay2 Ltd
                  - account_id: iojzXIJWEuiD73ZvydOfg
                    last_status: 1665465538000
                    last_sync: failed
                    linked_by: Testname3
                    name: Test Compay3 Ltd
                linked: true
          schema:
            $ref: "#/components/schemas/oauth_app_status"
      description: OK
    Org:
      content:
        application/json:
          examples:
            example-1:
              value:
                alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                allow_mist: true
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                orggroup_ids:
                  - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                session_expiry: 0
          schema:
            $ref: "#/components/schemas/org"
      description: OK
    OrgDeviceUpgrade:
      content:
        application/json:
          examples:
            example-1:
              value:
                enable_p2p: true
                force: true
                id: 466f6eca-6276-4993-bfeb-53cbbbba6f88
                start_time: 0
                status: created
                strategy: big_bang
                target_version: string
                upgrades:
                  - site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    upgrade:
                      id: 465f6eca-6276-4993-bfeb-53cbbbba6f98
                      start_time: 0
                      status: created
                      targets:
                        download_requested:
                          - 464f6eca-6276-4993-bfeb-53cbbbba6fa8
                        downloaded:
                          - 463f6eca-6276-4993-bfeb-53cbbbba6fb8
                        failed:
                          - 462f6eca-6276-4993-bfeb-53cbbbba6fc8
                        reboot_in_progress:
                          - 461f6eca-6276-4993-bfeb-53cbbbba6fd8
                        rebooted:
                          - 460f6eca-6276-4993-bfeb-53cbbbba6fe8
                        skipped:
                          - 459f6eca-6276-4993-bfeb-53cbbbba6ff8
          schema:
            $ref: "#/components/schemas/org_device_upgrade_response"
      description: OK
    OrgDevices:
      content:
        application/json:
          examples:
            example-1:
              value:
                results:
                  - mac: string
                    name: string
          schema:
            properties:
              results:
                items:
                  properties:
                    mac:
                      type: string
                    name:
                      type: string
                  required:
                    - mac
                    - name
                minItems: 1
                type: array
                uniqueItems: true
            required:
              - results
            type: object
      description: OK
    OrgInventory:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 1542328276
                  deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                  id: 00000000-0000-0000-0000-5c5b35000018
                  mac: 5c5b35000018
                  model: AP41
                  modified_time: 1542829778
                  name: hallway
                  serial: FXLH2015150025
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                  status: connected
                  type: ap
          schema:
            items:
              $ref: "#/components/schemas/inventory"
            type: array
      description: OK
    OrgInventoryAdd:
      content:
        application/json:
          examples:
            example-1:
              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
          schema:
            $ref: "#/components/schemas/response_inventory"
      description: OK - if any of entries are valid or there’s no errors
    OrgInventoryChanges:
      content:
        application/json:
          examples:
            assign:
              value:
                error: []
                op: assign
                reason: []
                success:
                  - 5c5b350e0001
            delete:
              value:
                error:
                  - FXLH2015150026
                op: delete
                reason: []
                success:
                  - FXLH2015150025
                  - 5c5b350e0001
            error:
              value:
                error:
                  - 5c5b350e0001
                op: manage
                reason:
                  - already managed
                success:
                  - c15353123096
          schema:
            properties:
              error:
                items:
                  type: string
                type: array
              op:
                enum:
                  - delete
                  - assign
                  - manage
                  - unmanage
                type: string
              reason:
                items:
                  type: string
                type: array
              success:
                items:
                  type: string
                type: array
            required:
              - error
              - op
              - success
              - reason
            type: object
      description: OK
    OrgSetting:
      content:
        application/json:
          examples:
            example-1:
              value:
                auto_device_naming:
                  enable: true
                  rules:
                    - expression: string
                      model: string
                      prefix: string
                      src: name
                      subnet: string
                      suffix: string
                      value: string
                auto_deviceprofile_assignment:
                  enable: true
                  rules:
                    - expression: string
                      model: string
                      prefix: string
                      src: name
                      subnet: string
                      suffix: string
                      value: string
                auto_site_assignment:
                  enable: true
                  rules:
                    - expression: string
                      model: string
                      prefix: string
                      src: name
                      subnet: string
                      suffix: string
                      value: string
                cacerts:
                  - string
                cloudshark:
                  apitoken: string
                  url: string
                created_time: 0
                device_cert:
                  cert: string
                  key: string
                device_updown_threshold: 0
                disable_pcap: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                installer:
                  allow_all_sites: true
                  extra_site_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  grace_period: 0
                mgmt:
                  mxtunnel_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  use_mxtunnel: true
                  use_wxtunnel: true
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                password_policy:
                  enabled: true
                  freshness: 0
                  min_length: 8
                  requires_special_char: true
                  requires_two_factor_auth: true
                pcap:
                  bucket: string
                  max_pkt_len: 0
                pcap_bucket_verified: true
                remote_syslog:
                  enabled: true
                  send_to_all_servers: true
                  servers:
                    - facility: conflict-log
                      host: string
                      port: 0
                      protocol: udp
                      severity: any
                      tag: string
                security:
                  disable_local_ssh: true
                  fips_zeroize_password: string
                  limit_ssh_access: true
                tags:
                  - string
                ui_idle_timeout: 0
            example-2:
              value:
                auto_device_naming:
                  enable: true
                  rules:
                    - expression: ...
                      src: lldp_port_desc
                auto_deviceprofile_assignment:
                  enable: true
                auto_site_assignment:
                  enable: true
                  rules:
                    - expression: "[0:3]"
                      prefix: XX-
                      src: name
                      suffix: -YY
                    - src: subnet
                      subnet: 10.1.2.0/18
                      value: s1351
                    - expression: ...
                      src: lldp_system_name
                    - expression: ...
                      src: dns_suffix
                    - model: AP41
                      src: model
                      value: s1351
                cacerts:
                  - |-
                    -----BEGIN CERTIFICATE-----
                    MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
                    -----END CERTIFICATE-----
                  - |-
                    -----BEGIN CERTIFICATE-----
                    BhMCRVMxFDASBgNVBAoMC1N0YXJ0Q29tIENBMSwwKgYDVn-----END CERTIFICATE-----
                cloudshark:
                  apitoken: accbd6f10c6d05c3
                  url: https://cloudshark.hosted.domain
                device_cert:
                  cert: |-
                    -----BEGIN CERTIFICATE-----
                    MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
                    -----END CERTIFICATE-----
                  key: -----BEGIN PRI...
                device_updown_threshold: 0
                disable_pcap: false
                installer:
                  allow_all_sites: false
                  extra_site_ids:
                    - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    - 52f4347e-3e4b-186c-21ca-ad5b70eb23d6
                  grace_period: 14
                mgmt:
                  mxtunnel_ids:
                    - 08cd7499-5841-51c8-e663-fb16b6f3b45e
                  use_mxtunnel: true
                  use_wxtunnel: false
                password_policy:
                  enabled: true
                  freshness: 60
                  min_length: 8
                  requires_special_char: false
                  requires_two_factor_auth: true
                pcap:
                  bucket: myorg-pcap
                  max_pkt_len: 128
                pcap_bucket_verified: true
                remote_syslog:
                  enabled: true
                  send_to_all_servers: true
                  servers:
                    - facility: any
                      host: syslogd.internal
                      port: 514
                      protocol: udp
                      severity: info
                      tag: ""
                security:
                  disable_local_ssh: false
                  fips_zeroize_password: NUKETHESITE
                  limit_ssh_access: false
                tags:
                  - beta
                ui_idle_timeout: 10
          schema:
            $ref: "#/components/schemas/org_setting"
      description: OK
    OrgSiteSle:
      content:
        application/json:
          examples:
            WAN SLE:
              value:
                end: 1651323600
                interval: 3600
                limit: 1
                page: 2
                results:
                  - application-health: 0.8250000047942866
                    gateway-health: 1
                    num_clients: 65
                    num_gateways: 1
                    site_id: f5fcbee5-1234-5678-9101-1619ede87879
                    wan-link-health: 0.9988471089272484
                start: 1651269600
                total: 4
            Wifi SLE:
              value:
                end: 1651323600
                interval: 3600
                limit: 1
                page: 2
                results:
                  - ap-availability: 1
                    ap-health: 0.6735632316819553
                    capacity: 0.9802900770150502
                    coverage: 0.812181632387686
                    num_aps: 3
                    num_clients: 24
                    roaming: 1
                    site_id: f5fcbee5-1234-5678-9101-1619ede87879
                    successful-connect: 0.9535864983932881
                    throughput: 1
                    time-to-connect: 0.9791666666666666
                start: 1651269600
                total: 4
            Wired SLE:
              value:
                end: 1651323600
                interval: 3600
                limit: 1
                page: 2
                results:
                  - num_clients: 6
                    num_switches: 1
                    site_id: f5fcbee5-1234-5678-9101-1619ede87879
                    switch-health: 1
                    switch-stc: 1
                    switch-throughput: 0.9669529756744796
                start: 1651269600
                total: 4
          schema:
            anyOf:
              - $ref: "#/components/schemas/OrgSiteSleWifiResponse"
              - $ref: "#/components/schemas/OrgSiteSleWiredResponse"
              - $ref: "#/components/schemas/OrgSiteSleWanResponse"
      description: Example response
    OrgStats:
      content:
        application/json:
          examples:
            example-1:
              value:
                alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                allow_mist: true
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                num_devices: 0
                num_devices_connected: 0
                num_devices_disconnected: 0
                num_inventory: 0
                num_sites: 0
                orggroup_ids:
                  - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                session_expiry: 0
                sle:
                  - path: string
                    user_minutes:
                      ok: 0
                      total: 0
          schema:
            $ref: "#/components/schemas/stats_org"
      description: OK
    Orggroup:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                org_ids:
                  - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/orggroup"
      description: OK
    OrggroupsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  org_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            items:
              $ref: "#/components/schemas/orggroup"
            type: array
      description: OK
    OrggroupsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                limit: 0
                page: 0
                results:
                  - id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    text: string
                    type: string
                total: 0
          schema:
            properties:
              limit:
                type: integer
              next:
                type: string
              page:
                type: integer
              results:
                items:
                  properties:
                    id:
                      format: uuid
                      type: string
                    text:
                      type: string
                    type:
                      type: string
                  required:
                    - id
                    - text
                    - type
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              total:
                type: integer
            required:
              - limit
              - page
              - results
              - total
            type: object
      description: OK
    OrgsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  allow_mist: true
                  created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  orggroup_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  session_expiry: 0
          schema:
            items:
              $ref: "#/components/schemas/org"
            type: array
      description: OK
    OrgsArrayStats:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/stats_org"
            type: array
      description: OK
    OrgsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1614383378.4365287
                limit: 10
                results:
                  - msp_id: d287e62f-0000-0000-0000-f2b9ba0a531f
                    name: Test Org
                    num_aps: 9
                    num_sites: 5
                    num_switches: 1
                    num_unassigned_aps: 1
                    org_id: bb1a8bf6-0000-0000-0000-8053a663cf65
                    sub_ana_required: 9
                    sub_ast_entitled: 5
                    sub_ast_required: 3
                    sub_eng_required: 3
                    sub_ex12_required: 1
                    sub_insufficient: true
                    sub_man_required: 9
                    sub_vna_entitled: 1
                    timestamp: 1614322563.513937
                    trial_enabled: false
                    usage_types:
                      - sub_eng
                  - msp_id: d287e62f-0000-0000-0000-f2b9ba0a531f
                    name: Rogue Test1
                    num_aps: 1
                    num_sites: 1
                    org_id: 0fb81690-0000-0000-0000-9596d1d1534f
                    sub_ana_entitled: 1
                    sub_ana_required: 1
                    sub_insufficient: false
                    sub_man_entitled: 1
                    sub_man_required: 1
                    timestamp: 1614309876.500955
                start: 1613778578.4365668
                total: 2
          schema:
            properties:
              end:
                readOnly: true
                type: number
              limit:
                readOnly: true
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    msp_id:
                      format: uuid
                      readOnly: true
                      type: string
                    name:
                      description: org name
                      readOnly: true
                      type: string
                    num_aps:
                      readOnly: true
                      type: integer
                    num_gateways:
                      readOnly: true
                      type: integer
                    num_sites:
                      readOnly: true
                      type: integer
                    num_switches:
                      readOnly: true
                      type: integer
                    num_unassigned_aps:
                      readOnly: true
                      type: integer
                    org_id:
                      description: org id
                      format: uuid
                      readOnly: true
                      type: string
                    sub_ana_entitled:
                      readOnly: true
                      type: integer
                    sub_ana_required:
                      readOnly: true
                      type: integer
                    sub_ast_entitled:
                      readOnly: true
                      type: integer
                    sub_ast_required:
                      readOnly: true
                      type: integer
                    sub_eng_entitled:
                      readOnly: true
                      type: integer
                    sub_eng_required:
                      readOnly: true
                      type: integer
                    sub_ex12_required:
                      readOnly: true
                      type: integer
                    sub_insufficient:
                      description: if this org has sufficient subscription
                      readOnly: true
                      type: boolean
                    sub_man_entitled:
                      readOnly: true
                      type: integer
                    sub_man_required:
                      readOnly: true
                      type: integer
                    sub_me_entitled:
                      readOnly: true
                      type: integer
                    sub_vna_entitled:
                      readOnly: true
                      type: integer
                    sub_vna_required:
                      readOnly: true
                      type: integer
                    timestamp:
                      readOnly: true
                      type: number
                    trial_enabled:
                      description: if this org is under trial period
                      readOnly: true
                      type: boolean
                    usage_types:
                      description: a list of types that enabled by usage
                      items:
                        type: string
                      readOnly: true
                      type: array
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                readOnly: true
                type: number
              total:
                readOnly: true
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
            x-examples:
              example-1:
                end: 1622703061.6106656
                limit: 10
                results:
                  - msp_id: d3ea21e6-b7a3-4027-a689-754cb88b9807
                    name: TM-LAB
                    num_aps: 4
                    num_gateways: 1
                    num_sites: 2
                    num_switches: 1
                    num_unassigned_aps: 1
                    org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
                    sub_ana_entitled: 2
                    sub_ana_required: 4
                    sub_ast_entitled: 2
                    sub_ast_required: 3
                    sub_eng_entitled: 2
                    sub_eng_required: 2
                    sub_ex12_required: 1
                    sub_insufficient: true
                    sub_man_entitled: 2
                    sub_man_required: 3
                    sub_me_entitled: 2
                    sub_vna_entitled: 2
                    sub_vna_required: 3
                    timestamp: 1622647525.727498
                start: 1622098261.6106946
                total: 1
      description: OK
    PcapStart:
      content:
        application/json:
          examples:
            example-1:
              value:
                ap_count: 3
                aps: []
                duration: 600
                enabled: true
                expiry: 1614886726.5411825
                format: stream
                id: a9a84e13-a714-b1eb-152f-a434416217d5
                include_mcast: false
                invalid_aps: {}
                max_pkt_len: 68
                num_packets: 100
                org_id: a9346fba-f920-e99a-cc51-2e8dcc57fa3c
                raw: true
                site_id: 67970e46-4e12-11e6-9188-0242ac110007
                ssid: ""
                timestamp: 1614886126.5411825
                type: radiotap
          schema:
            description: ""
            properties:
              ap_count:
                type: integer
              aps:
                items:
                  type: string
                type: array
              client_mac:
                nullable: true
                type: string
              duration:
                type: number
              enabled:
                type: boolean
              expiry:
                type: number
              format:
                type: string
              id:
                format: uuid
                type: string
              include_mcast:
                type: boolean
              invalid_aps:
                type: object
              max_pkt_len:
                type: integer
              num_packets:
                type: integer
              org_id:
                format: uuid
                type: string
              raw:
                type: boolean
              site_id:
                format: uuid
                type: string
              ssid:
                nullable: true
                type: string
              tcpdump_parser_expression:
                nullable: true
                type: string
              timestamp:
                type: number
              type:
                type: string
            required:
              - timestamp
              - id
              - org_id
              - site_id
              - type
            type: object
      description: OK
    PcapStatus:
      content:
        application/json:
          examples:
            example-1:
              value:
                aps:
                  - 5c5b350e001c
                  - 5c5b350e001b
                client_mac: 60a10a773412
                duration: 300
                failed: []
                id: a9a84e13-a714-b1eb-152f-a434416217d5
                includes_mcast: false
                max_pkt_len: 128
                num_packets: 1000
                ok:
                  - 5c5b350e001c
                  - 5c5b350e001b
                started_time: 1435080709
                type: client
          schema:
            properties:
              ap_mac:
                nullable: true
                type: string
              aps:
                description: List of target APs to capture packets
                items:
                  type: string
                type: array
              client_mac:
                example: 60a10a773412
                nullable: true
                type: string
              duration:
                example: 300
                type: integer
              failed:
                description: List of APs where configuration attempt failed
                items:
                  type: string
                type: array
              gateways:
                description: List of target Gateways to capture packets if a gateway capture type is specified
                items:
                  type: string
                type: array
              id:
                description: unique id for the capture
                format: uuid
                type: string
              includes_mcast:
                type: boolean
              max_num_packets:
                description: max number of packets configured by user
                example: 1000
                type: integer
              max_pkt_len:
                example: 128
                type: integer
              num_packets:
                description: total number of packets captured by all AP, not applicable for type [client, new_assoc]
                type: integer
              ok:
                description: List of target APs successfully configured to capture packets
                items:
                  type: string
                type: array
              radiotap_tcpdump_expression:
                description: when `type`==`radiotap`, radiotap_tcpdump_expression expression provided by the user
                type: string
              scan_tcpdump_expression:
                description: when `type`==`scan`, scan_tcpdump_expression provided by the user
                type: string
              ssid:
                nullable: true
                type: string
              started_time:
                example: 1435080709
                type: integer
              tcpdump_expression:
                description: tcpdump expression provided by the user (common)
                type: string
              type:
                enum:
                  - new_assoc
                  - client
                  - wired
                  - wireless
                  - radiotap
                  - gateway
                example: client
                type: string
              wired_tcpdump_expression:
                description: when `type`==`wired`, wired_tcpdump_expression provided by the user
                type: string
              wireless_tcpdump_expression:
                description: when `type`==`‘wireless’`, wireless_tcpdump_expression provided by the user
                type: string
            required:
              - id
              - type
            type: object
      description: OK
    PcapsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1461089816
                limit: 100
                next: /api/v1/sites/67970e46-4e12-11e6-9188-0242ac110007/insights/marvis?start=1461099816&token=AAAAFgAIAAAAAFj6ohEAAAhzZXZlcml0eQB%2F%2F%2F%2F1&limit=100&end=1461089816
                results:
                  - ap_macs:
                      - 5c5b35000010
                    timestamp: 1461869041
                    type: new_assoc
                    url: https://...
                start: 1461099816
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    ap_macs:
                      items:
                        type: string
                      type: array
                    timestamp:
                      type: number
                    type:
                      type: string
                    url:
                      type: string
                  required:
                    - timestamp
                    - type
                    - url
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - next
              - results
              - start
            type: object
      description: OK
    Portaltemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                accessCodeAlternateEmail: string
                alignment: string
                authButtonAmazon: string
                authButtonAzure: string
                authButtonEmail: string
                authButtonFacebook: string
                authButtonGoogle: string
                authButtonMicrosoft: string
                authButtonPassphrase: string
                authButtonSms: string
                authButtonSponsor: string
                authLabel: string
                backLink: string
                color: string
                colorDark: string
                colorLight: string
                company: true
                companyError: string
                companyLabel: string
                created_time: 0
                email: true
                emailAccessDomainError: string
                emailCancel: string
                emailCodeError: string
                emailError: string
                emailFieldLabel: string
                emailLabel: string
                emailMessage: string
                emailSubmit: string
                emailTitle: string
                field1: true
                field1Error: string
                field1Label: string
                field1Required: true
                field2: true
                field2Error: string
                field2Label: string
                field2Required: true
                field3: true
                field3Error: string
                field3Label: string
                field3Required: true
                field4: true
                field4Error: string
                field4Label: string
                field4Required: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                message: string
                modified_time: 0
                name: true
                nameError: string
                nameLabel: string
                optout: true
                optoutLabel: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                pageTitle: string
                passphraseCancel: string
                passphraseError: string
                passphraseLabel: string
                passphraseMessage: string
                passphraseSubmit: string
                passphraseTitle: string
                poweredBy: true
                requiredFieldLabel: string
                signInLabel: string
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                smsCarrierDefault: string
                smsCarrierError: string
                smsCarrierFieldLabel: string
                smsCodeCancel: string
                smsCodeError: string
                smsCodeFieldLabel: string
                smsCodeMessage: string
                smsCodeSubmit: string
                smsCodeTitle: string
                smsCountryFieldLabel: string
                smsCountryFormat: string
                smsHaveAccessCode: string
                smsMessageFormat: string
                smsNumberCancel: string
                smsNumberError: string
                smsNumberFieldLabel: string
                smsNumberFormat: string
                smsNumberMessage: string
                smsNumberSubmit: string
                smsNumberTitle: string
                smsUsernameFormat: string
                smsValidityDuration: 0
                sponsorBackLink: string
                sponsorCancel: string
                sponsorEmail: string
                sponsorEmailError: string
                sponsorEmailTemplate: string
                sponsorInfoApproved: string
                sponsorInfoDenied: string
                sponsorInfoPending: string
                sponsorName: string
                sponsorNameError: string
                sponsorNotePending: string
                sponsorStatusApproved: string
                sponsorStatusDenied: string
                sponsorStatusPending: string
                sponsorSubmit: string
                tos: true
                tosAcceptLabel: string
                tosError: string
                tosLink: string
                tosText: string
          schema:
            $ref: "#/components/schemas/portal_template"
      description: OK
    Psk:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/psk"
      description: OK
    PskPortal:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/psk_portal"
      description: Example response
    PskPortalsArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/psk_portal"
            type: array
      description: Example response
    PsksArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mac: string
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  passphrase: stringst
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ssid: string
                  usage: multi
                  vlan_id: 1
          schema:
            items:
              $ref: "#/components/schemas/psk"
            type: array
      description: OK
    Rfdiag:
      content:
        application/json:
          examples:
            example-1:
              value:
                - asset_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  asset_name: string
                  client_name: string
                  duration: 0
                  end_time: 0
                  frame_count: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mac: string
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  next: string
                  raw_events: string
                  ready: true
                  sdkclient_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  sdkclient_name: string
                  sdkclient_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  start_time: 0
                  type: sdkclient
                  url: string
          schema:
            $ref: "#/components/schemas/rfdiag.response"
      description: OK
    RfdiagsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - - asset_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    asset_name: string
                    client_name: string
                    duration: 0
                    end_time: 0
                    frame_count: 0
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    mac: string
                    map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    name: string
                    next: string
                    raw_events: string
                    ready: true
                    sdkclient_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sdkclient_name: string
                    sdkclient_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    start_time: 0
                    type: sdkclient
                    url: string
          schema:
            items:
              $ref: "#/components/schemas/rfdiag.response"
            type: array
      description: OK
    Rftemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                ant_gain_24: 0
                ant_gain_5: 0
                band_24:
                  allow_rrm_disable: true
                  ant_gain: 0
                  bandwidth: 20
                  channels:
                    - 1
                    - 6
                    - 11
                  disabled: false
                  power_max: 11
                  power_min: 3
                  preamble: short
                band_24_usage: auto
                band_5:
                  allow_rrm_disable: false
                  ant_gain: 0
                  bandwidth: 80
                  channels:
                    - 36
                    - 40
                    - 44
                    - 48
                    - 52
                    - 56
                    - 60
                    - 64
                    - 100
                    - 104
                    - 149
                    - 153
                    - 157
                    - 161
                  disabled: false
                  power_max: 16
                  power_min: 9
                  preamble: short
                country_code: FR
                created_time: 1594743723
                id: b3f20330-f76a-49f1-bc65-0d8727140b1d
                model_specific: {}
                modified_time: 1613582192
                name: Lab
                org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          schema:
            $ref: "#/components/schemas/rftemplate"
      description: OK
    RftemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - ant_gain_24: 0
                  ant_gain_5: 0
                  band_24:
                    allow_rrm_disable: true
                    ant_gain: 0
                    bandwidth: 20
                    channels:
                      - 1
                      - 6
                      - 11
                    disabled: false
                    power_max: 11
                    power_min: 3
                    preamble: short
                  band_24_usage: auto
                  band_5:
                    allow_rrm_disable: false
                    ant_gain: 0
                    bandwidth: 80
                    channels:
                      - 36
                      - 40
                      - 44
                      - 48
                      - 52
                      - 56
                      - 60
                      - 64
                      - 100
                      - 104
                      - 149
                      - 153
                      - 157
                      - 161
                    disabled: false
                    power_max: 16
                    power_min: 9
                    preamble: short
                  country_code: FR
                  created_time: 1594743723
                  id: b3f20330-f76a-49f1-bc65-0d8727140b1d
                  model_specific: {}
                  modified_time: 1613582192
                  name: Lab
                  org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          schema:
            items:
              $ref: "#/components/schemas/rftemplate"
            type: array
      description: OK
    RogueEventsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1538074800
                limit: 10
                results:
                  - ap: 5c5b350e10030
                    bssid: 38ff363c8c4c
                    channel: 136
                    rssi: -54
                    ssid: MyHomeNetwork
                    timestamp: 1538074612
                  - ap: 5c5b350e10030
                    bssid: 60d02c2394cc
                    channel: 11
                    rssi: -59
                    ssid: Home-Office
                    timestamp: 1538074612
                start: 1538071200
                total: 2
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/events_rogue"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    Rrm:
      content:
        application/json:
          examples:
            example-1:
              value:
                band_24: {}
                band_24_metric:
                  avg_aps_per_channel: 0
                  channel_distribution_uniformity: 0
                  cochannel_neighbors: 0
                  density: 0
                  naps_by_channel: {}
                  naps_by_power: {}
                  neighbors: 0
                  noise: 0
                band_5: {}
                band_5_metric:
                  avg_aps_per_channel: 0
                  channel_distribution_uniformity: 0
                  cochannel_neighbors: 0
                  density: 0
                  naps_by_channel: {}
                  naps_by_power: {}
                  neighbors: 0
                  noise: 0
                rftemplate:
                  band_24:
                    allow_rrm_disable: true
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: auto
                    usage: "24"
                  band_5:
                    allow_rrm_disable: true
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: auto
                    usage: "24"
                  country_code: string
                  created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  model_specific:
                    property1:
                      band_24:
                        allow_rrm_disable: true
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: auto
                        usage: "24"
                      band_5:
                        allow_rrm_disable: true
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: auto
                        usage: "24"
                    property2:
                      band_24:
                        allow_rrm_disable: true
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: auto
                        usage: "24"
                      band_5:
                        allow_rrm_disable: true
                        antenna_mode: default
                        bandwidth: 20
                        channel: 0
                        disabled: true
                        power: 0
                        power_max: 0
                        power_min: 0
                        preamble: auto
                        usage: "24"
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                rftemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                rftemplate_name: string
                status: updating
                timestamp: 0
          schema:
            $ref: "#/components/schemas/rrm"
      description: OK
    RrmConsideration:
      content:
        application/json:
          examples:
            example-1:
              value:
                results:
                  - channel: 36
                    noise: -78
                    non_wifi: 0.08
                    other_rssi: -66
                    other_ssid: Rivendell5G
                    rssi: -48
                    util_score: 0.1
                    util_score_non_wifi: 0.01
                    util_score_other: 0.05
                    wifi: 0.13
          schema:
            properties:
              results:
                items:
                  properties:
                    channel:
                      type: integer
                    noise:
                      type: number
                    other_rssi:
                      description: the avg RSSI heard from other APs (that does NOT belongs to the same site)
                      type: number
                    other_ssid:
                      description: SSID from other AP that we heard from with the max RSSI
                      type: string
                    util_score:
                      description: utilization score, 0-1, lower means less utilization (cleaner RF)
                      type: number
                    util_score_non_wifi:
                      description: non-wifi utilization score, 0-1, lower means less utilization (cleaner RF)
                      type: number
                    util_score_other:
                      description: other utilization score, 0-1, lower means less utilization (cleaner RF)
                      type: number
                  required:
                    - channel
                    - noise
                    - util_score
                    - util_score_other
                    - util_score_non_wifi
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
            required:
              - results
            type: object
      description: OK
    RrmEvents:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1428954000
                limit: 100
                next: /api/v1/sites/dca0a44b-324c-11e6-a776-0243ad110007/events/rrm?start=1428939600&end=1428949600&limit=200&token=001a0010000000120010000005005880ec18000004776c616e007fffffeb067ab8e29c1d659b6a7c8cf698bf81490003
                results:
                  - ap_id: 00000000-0000-0000-1000-5c5b359e4fe0
                    band: "24"
                    bandwidth: 20
                    channel: 6
                    event: scheduled-site-rrm
                    power: 5
                    pre_bandwidth: 20
                    pre_channel: 1
                    pre_power: 11
                    pre_usage: "24"
                    timestamp: 1428939600
                    usage: "24"
                start: 1428939600
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                description: the link to query next set of results. value is null if no next page exists.
                type: string
              results:
                items:
                  properties:
                    ap_id:
                      format: uuid
                      type: string
                    band:
                      description: ""
                      enum:
                        - "24"
                        - "5"
                        - "6"
                      type: string
                    bandwidth:
                      description: channel width for the band
                      enum:
                        - 20
                        - 40
                        - 80
                        - 160
                      type: integer
                    channel:
                      description: channel for the band from rrm
                      type: integer
                    event:
                      description: schedule-site-rrm / triggered-site-rrm / interference-ap-co-channel / rrm-radar
                      enum:
                        - triggered-site-rrm
                        - interference-ap-co-channel
                        - rrm-radar
                        - scheduled-site-rrm
                        - interference-ap-non-wifi
                        - radar-detected
                        - neighbor-ap-down
                        - neighbor-ap-recovered
                      type: string
                    power:
                      description: tx power of the radio
                      type: integer
                    pre_bandwidth:
                      description: (previously) channel width for the band , 0 means no previously available
                      enum:
                        - 0
                        - 20
                        - 40
                        - 80
                        - 160
                      type: integer
                    pre_channel:
                      description: (previously) channel for the band, 0 means no previously available
                      type: integer
                    pre_power:
                      description: (previously) tx power of the radio, 0 means no previously available
                      type: number
                    pre_usage:
                      type: string
                    timestamp:
                      description: timestamp of the event
                      type: number
                    usage:
                      type: string
                  required:
                    - ap_id
                    - band
                    - bandwidth
                    - channel
                    - event
                    - power
                    - pre_bandwidth
                    - pre_channel
                    - pre_power
                    - pre_usage
                    - timestamp
                    - usage
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
            required:
              - end
              - limit
              - results
              - start
            type: object
      description: OK
    Rssizone:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                devices:
                  - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    rssi: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/rssizone"
      description: OK
    RssizonesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  devices:
                    - device_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      rssi: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            items:
              $ref: "#/components/schemas/rssizone"
            type: array
      description: OK
    Sdkinvite:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 1428954000
                enabled: true
                expire_time: 1428954000
                id: 5034b980-b49e-501c-66e0-9de4c38f18a2
                name: Macy's
                quota: -1
          schema:
            $ref: "#/components/schemas/sdkinvite"
      description: OK
    SdkinvitesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 1428954000
                  enabled: true
                  expire_time: 1428954000
                  id: 5034b980-b49e-501c-66e0-9de4c38f18a2
                  name: Macy's
                  quota: -1
          schema:
            items:
              $ref: "#/components/schemas/sdkinvite"
            type: array
      description: OK
    Sdktemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                bg_image: http://p.imgci.com/db/PICTURES/CMS/227700/227791.4.jpg
                btn_flr_bgcolor: "#282828"
                default: true
                header_txt: Mist
                name: default
                search_txtcolor: "#282828"
                welcome_msg: Welcome to Mist
          schema:
            $ref: "#/components/schemas/sdktemplate"
      description: OK
    SdktemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - bg_image: http://p.imgci.com/db/PICTURES/CMS/227700/227791.4.jpg
                  btn_flr_bgcolor: "#282828"
                  default: true
                  header_txt: Mist
                  name: default
                  search_txtcolor: "#282828"
                  welcome_msg: Welcome to Mist
          schema:
            items:
              $ref: "#/components/schemas/sdktemplate"
            type: array
      description: Example response
    SecpoliciesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wlans:
                    - acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 0
                          secret: string
                      airwatch:
                        api_key: string
                        console_url: string
                        enabled: true
                        password: string
                        username: string
                      allow_ipv6_ndp: true
                      allow_mdns: true
                      ap_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      app_limit:
                        apps: {}
                        enabled: true
                        wxtag_ids: {}
                      app_qos:
                        apps:
                          skype-business-video:
                            dscp: 0
                            dst_subnet: string
                            src_subnet: string
                          skype-business-voice:
                            dscp: 0
                        enabled: true
                        others:
                          - dscp: 0
                            dst_subnet: string
                            port_ranges: string
                            protocol: string
                            src_subnet: string
                      apply_to: site
                      arp_filter: true
                      auth:
                        eap_reauth: true
                        enable_mac_auth: true
                        key_idx: 1
                        keys:
                          - string
                        multi_psk_only: true
                        owe: string
                        pairwise:
                          - string
                        private_wlan: true
                        psk: string123
                        type: open
                        wep_as_secondary_auth: true
                      auth_server_selection: ordered
                      auth_servers:
                        - host: string
                          port: 0
                          secret: string
                      auth_servers_nas_id: string
                      auth_servers_nas_ip: string
                      auth_servers_retries: 0
                      auth_servers_timeout: 0
                      band: string
                      band_steer: true
                      band_steer_force_band5: true
                      block_blacklist_clients: true
                      bonjour:
                        additional_vlan_ids:
                          - 0
                        enabled: true
                        services:
                          property1:
                            disable_local: true
                            radius_groups:
                              - string
                            scope: string
                          property2:
                            disable_local: true
                            radius_groups:
                              - string
                            scope: string
                      cisco_cwa:
                        allowed_hostnames:
                          - string
                        allowed_subnets:
                          - string
                        enabled: true
                      client_limit_down: 0
                      client_limit_down_enabled: true
                      client_limit_up: 0
                      client_limit_up_enabled: true
                      coa_servers:
                        - disable_event_timestamp_check: true
                          enabled: true
                          ip: 192.168.1.1
                          port: "3799"
                          secret: string
                      created_time: 0
                      disable_11ax: true
                      disable_uapsd: true
                      disable_wmm: true
                      dns_server_rewrite:
                        enabled: true
                        radius_groups: {}
                      dtim: 0
                      dynamic_psk:
                        default_vlan_id: 1
                        enabled: true
                        source: radius
                        vlan_ids:
                          - 1
                      dynamic_vlan:
                        default_vlan_id: 1
                        enabled: true
                        local_vlan_ids:
                          - 1
                        type: standard
                        vlans: {}
                      enable_wireless_bridging: true
                      enabled: true
                      hide_ssid: true
                      hostname_ie: true
                      hotspot20:
                        enabled: true
                        operators:
                          - string
                        venue_name: string
                      id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      interface: all
                      isolation: true
                      legacy_overds: true
                      limit_bcast: true
                      limit_probe_response: true
                      max_idletime: 60
                      modified_time: 0
                      msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      no_static_dns: true
                      no_static_ip: true
                      org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      portal:
                        amazon_client_id: string
                        amazon_client_secret: string
                        amazon_email_domains:
                          - string
                        amazon_enabled: true
                        auth: none
                        azure_client_id: string
                        azure_client_secret: string
                        azure_enabled: true
                        azure_tenant_id: string
                        bypass_when_cloud_down: true
                        email_enabled: true
                        enabled: true
                        expire: 0
                        external_portal_url: string
                        facebook_client_id: string
                        facebook_client_secret: string
                        facebook_email_domains:
                          - string
                        facebook_enabled: true
                        forward: true
                        forward_url: string
                        google_email_domains:
                          - string
                        google_enabled: true
                        microsoft_client_id: string
                        microsoft_client_secret: string
                        microsoft_email_domains:
                          - string
                        microsoft_enabled: true
                        passphrase_enabled: true
                        password: string
                        portal_allowed_hostnames: string
                        portal_allowed_subnets: string
                        portal_api_secret: string
                        portal_denied_hostnames: string
                        portal_image: string
                        portal_sso_url: string
                        privacy: true
                        sms_enabled: true
                        sms_provider: manual
                        sponsor_email_domains:
                          - string
                        sponsor_enabled: true
                        sponsor_link_validity_duration: "60"
                        sponsors:
                          property1: string
                          property2: string
                        sso_default_role: string
                        sso_idp_cert: string
                        sso_idp_sign_algo: string
                        sso_idp_sso_url: string
                        sso_issuer: string
                        thumbnail: string
                        twilio_auth_token: string
                        twilio_phone_number: string
                        twilio_sid: string
                      portal_allowed_hostnames:
                        - string
                      portal_allowed_subnets:
                        - string
                      portal_api_secret: string
                      portal_denied_hostnames:
                        - string
                      portal_image: http://example.com
                      portal_sso_url: string
                      portal_template_url: string
                      qos:
                        class: best_effort
                        overwrite: true
                      radsec:
                        enabled: true
                        server_name: string
                        servers:
                          - host: string
                            port: 0
                        use_mxedge: true
                      rateset:
                        "5":
                          ht: string
                          legacy:
                            - string
                          min_rssi: 0
                          template: string
                          vht: string
                        "24":
                          ht: string
                          legacy:
                            - string
                          min_rssi: 0
                          template: string
                          vht: string
                      roam_mode: 11r
                      schedule:
                        enabled: true
                        hours: {}
                      site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      sle_excluded: true
                      ssid: string
                      thumbnail: http://example.com
                      use_eapol_v1: true
                      vlan_enabled: true
                      vlan_id: 1
                      vlan_ids:
                        - 1
                      vlan_pooling: true
                      wlan_limit_down: 0
                      wlan_limit_down_enabled: true
                      wlan_limit_up: 0
                      wlan_limit_up_enabled: true
                      wxtag_ids:
                        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      wxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                      wxtunnel_remote_id: string
            example-2:
              value:
                - name: corporate only
                  wlans:
                    - auth:
                        pairwise:
                          - wpa1-tkip
                          - wpa2-tkip
                        type: psk
                      band: both
                      ssid: office
                    - auth:
                        type: open
                      band: "5"
                      ssid: office-guest
          schema:
            items:
              $ref: "#/components/schemas/secpolicy"
            type: array
      description: OK
    Secpolicy:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                wlans:
                  - acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 0
                        secret: string
                    airwatch:
                      api_key: string
                      console_url: string
                      enabled: true
                      password: string
                      username: string
                    allow_ipv6_ndp: true
                    allow_mdns: true
                    ap_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    app_limit:
                      apps: {}
                      enabled: true
                      wxtag_ids: {}
                    app_qos:
                      apps:
                        skype-business-video:
                          dscp: 0
                          dst_subnet: string
                          src_subnet: string
                        skype-business-voice:
                          dscp: 0
                      enabled: true
                      others:
                        - dscp: 0
                          dst_subnet: string
                          port_ranges: string
                          protocol: string
                          src_subnet: string
                    apply_to: site
                    arp_filter: true
                    auth:
                      eap_reauth: true
                      enable_mac_auth: true
                      key_idx: 1
                      keys:
                        - string
                      multi_psk_only: true
                      owe: string
                      pairwise:
                        - string
                      private_wlan: true
                      psk: string123
                      type: open
                      wep_as_secondary_auth: true
                    auth_server_selection: ordered
                    auth_servers:
                      - host: string
                        port: 0
                        secret: string
                    auth_servers_nas_id: string
                    auth_servers_nas_ip: string
                    auth_servers_retries: 0
                    auth_servers_timeout: 0
                    band: string
                    band_steer: true
                    band_steer_force_band5: true
                    block_blacklist_clients: true
                    bonjour:
                      additional_vlan_ids:
                        - 0
                      enabled: true
                      services:
                        property1:
                          disable_local: true
                          radius_groups:
                            - string
                          scope: string
                        property2:
                          disable_local: true
                          radius_groups:
                            - string
                          scope: string
                    cisco_cwa:
                      allowed_hostnames:
                        - string
                      allowed_subnets:
                        - string
                      enabled: true
                    client_limit_down: 0
                    client_limit_down_enabled: true
                    client_limit_up: 0
                    client_limit_up_enabled: true
                    coa_servers:
                      - disable_event_timestamp_check: true
                        enabled: true
                        ip: 192.168.1.1
                        port: "3799"
                        secret: string
                    created_time: 0
                    disable_11ax: true
                    disable_uapsd: true
                    disable_wmm: true
                    dns_server_rewrite:
                      enabled: true
                      radius_groups: {}
                    dtim: 0
                    dynamic_psk:
                      default_vlan_id: 1
                      enabled: true
                      source: radius
                      vlan_ids:
                        - 1
                    dynamic_vlan:
                      default_vlan_id: 1
                      enabled: true
                      local_vlan_ids:
                        - 1
                      type: standard
                      vlans: {}
                    enable_wireless_bridging: true
                    enabled: true
                    hide_ssid: true
                    hostname_ie: true
                    hotspot20:
                      enabled: true
                      operators:
                        - string
                      venue_name: string
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    interface: all
                    isolation: true
                    legacy_overds: true
                    limit_bcast: true
                    limit_probe_response: true
                    max_idletime: 60
                    modified_time: 0
                    msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    mxtunnel_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                    no_static_dns: true
                    no_static_ip: true
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    portal:
                      amazon_client_id: string
                      amazon_client_secret: string
                      amazon_email_domains:
                        - string
                      amazon_enabled: true
                      auth: none
                      azure_client_id: string
                      azure_client_secret: string
                      azure_enabled: true
                      azure_tenant_id: string
                      bypass_when_cloud_down: true
                      email_enabled: true
                      enabled: true
                      expire: 0
                      external_portal_url: string
                      facebook_client_id: string
                      facebook_client_secret: string
                      facebook_email_domains:
                        - string
                      facebook_enabled: true
                      forward: true
                      forward_url: string
                      google_email_domains:
                        - string
                      google_enabled: true
                      microsoft_client_id: string
                      microsoft_client_secret: string
                      microsoft_email_domains:
                        - string
                      microsoft_enabled: true
                      passphrase_enabled: true
                      password: string
                      portal_allowed_hostnames: string
                      portal_allowed_subnets: string
                      portal_api_secret: string
                      portal_denied_hostnames: string
                      portal_image: string
                      portal_sso_url: string
                      privacy: true
                      sms_enabled: true
                      sms_provider: manual
                      sponsor_email_domains:
                        - string
                      sponsor_enabled: true
                      sponsor_link_validity_duration: "60"
                      sponsors:
                        property1: string
                        property2: string
                      sso_default_role: string
                      sso_idp_cert: string
                      sso_idp_sign_algo: string
                      sso_idp_sso_url: string
                      sso_issuer: string
                      thumbnail: string
                      twilio_auth_token: string
                      twilio_phone_number: string
                      twilio_sid: string
                    portal_allowed_hostnames:
                      - string
                    portal_allowed_subnets:
                      - string
                    portal_api_secret: string
                    portal_denied_hostnames:
                      - string
                    portal_image: http://example.com
                    portal_sso_url: string
                    portal_template_url: string
                    qos:
                      class: best_effort
                      overwrite: true
                    radsec:
                      enabled: true
                      server_name: string
                      servers:
                        - host: string
                          port: 0
                      use_mxedge: true
                    rateset:
                      "5":
                        ht: string
                        legacy:
                          - string
                        min_rssi: 0
                        template: string
                        vht: string
                      "24":
                        ht: string
                        legacy:
                          - string
                        min_rssi: 0
                        template: string
                        vht: string
                    roam_mode: 11r
                    schedule:
                      enabled: true
                      hours: {}
                    site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sle_excluded: true
                    ssid: string
                    thumbnail: http://example.com
                    use_eapol_v1: true
                    vlan_enabled: true
                    vlan_id: 1
                    vlan_ids:
                      - 1
                    vlan_pooling: true
                    wlan_limit_down: 0
                    wlan_limit_down_enabled: true
                    wlan_limit_up: 0
                    wlan_limit_up_enabled: true
                    wxtag_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    wxtunnel_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                    wxtunnel_remote_id: string
            example-2:
              value:
                name: corporate only
                wlans:
                  - auth:
                      pairwise:
                        - wpa1-tkip
                        - wpa2-tkip
                      type: psk
                    band: both
                    ssid: office
                  - auth:
                      type: open
                    band: "5"
                    ssid: office-guest
          schema:
            $ref: "#/components/schemas/secpolicy"
      description: OK
    Service:
      content:
        application/json:
          examples:
            example-1:
              value:
                addresses:
                  - string
                app_caetgories:
                  - string
                apps:
                  - string
                created_time: 0
                dscp: 0
                failover_policy: revertable
                hostnames:
                  - string
                id: 497f6eca-6276-5004-bfeb-53cbbbba6f08
                max_jitter: 0
                max_latency: string
                max_loss: 0
                modified_time: 0
                name: string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                sle_enabled: false
                specs:
                  - port_range: 0
                    protocol: any
                traffic_class: best_effort
                traffic_type: data_best_effort
                type: custom
                vpn_name: addresses
          schema:
            $ref: "#/components/schemas/service"
      description: OK
    ServicePoliciesArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/service_policy"
            type: array
      description: Example response
    ServicePolicy:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/service_policy"
      description: Example response
    ServicesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - addresses:
                    - string
                  apps:
                    - string
                  dscp_class: string
                  hostnames:
                    - string
                  max_jitter: 0
                  max_latency: string
                  max_loss: 0
                  name: string
                  specs:
                    - port_range: 0
                      protocol: any
                  traffic_class: best_effort
                  traffic_type: default
                  type: custom
                  vpn_name: addresses
          schema:
            items:
              $ref: "#/components/schemas/service"
            type: array
      description: OK
    Session:
      content:
        application/json:
          examples:
            example-1:
              value:
                session: session_id
          schema:
            properties:
              session:
                type: string
            required:
              - session
            type: object
      description: OK
    Site:
      content:
        application/json:
          examples:
            example-1:
              value:
                address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
                alarmtemplate_id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
                apporttemplate_id: string
                aptemplate_id: 16bdf952-ade2-4491-80b0-85ce506c760b
                country_code: US
                created_time: 0
                gatewaytemplate_id: 6f9b2e75-9b2f-b5ae-81e3-e14c76f1a90f
                id: 497f6eca-6276-5005-bfeb-53cbbbba6f08
                latlng:
                  lat: 37.295833
                  lng: -122.032946
                modified_time: 0
                name: Mist Office
                networktemplate_id: 12ae9bd2-e0ab-107b-72e8-a7a005565ec2
                notes: string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                rftemplate_id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
                secpolicy_id: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
                sitegroup_ids:
                  - 497f6eca-6276-5006-bfeb-53cbbbba6f08
                timezone: America/Los_Angeles
          schema:
            $ref: "#/components/schemas/site"
      description: OK
    SiteSettings:
      content:
        application/json:
          examples:
            example-1:
              value:
                additional_config_cmds:
                  - string
                analytic:
                  enabled: false
                auto_upgrade:
                  custom_versions:
                    property1: string
                    property2: string
                  day_of_week: any
                  enabled: false
                  time_of_day: string
                  version: stable
                bgp_groups:
                  property1:
                    type: external
                  property2:
                    type: external
                ble_config:
                  beacon_enabled: true
                  beacon_rate: 0
                  beacon_rate_mode: default
                  beam_disabled:
                    - 0
                  eddystone_uid_adv_power: -100
                  eddystone_uid_beams: string
                  eddystone_uid_enabled: true
                  eddystone_uid_freq_msec: 0
                  eddystone_uid_instance: string
                  eddystone_uid_namespace: string
                  eddystone_url_adv_power: 0
                  eddystone_url_beams: string
                  eddystone_url_enabled: true
                  eddystone_url_freq_msec: 0
                  eddystone_url_url: string
                  ibeacon_adv_power: -100
                  ibeacon_beams: string
                  ibeacon_enabled: false
                  ibeacon_freq_msec: 0
                  ibeacon_major: 0
                  ibeacon_minor: 0
                  ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
                  power: 9
                  power_mode: string
                config_auto_revert: false
                created_time: 0
                device_updown_threshold: 0
                dns_servers:
                  - string
                dns_suffix:
                  - string
                enable_channel_144: false
                engagement:
                  dwell_tag_names:
                    bounce: string
                    engaged: string
                    passerby: string
                    stationed: string
                  dwell_tags:
                    bounce: string
                    engaged: string
                    passerby: string
                    stationed: string
                  hours:
                    fri: string
                    mon: string
                    sta: string
                    sun: string
                    thu: string
                    tue: string
                    wed: string
                  max_dwell: 43200
                  min_dwell: 0
                evpn_options:
                  overlay:
                    as: 0
                  underlay:
                    as_base: 0
                    subnet: string
                flags:
                  property1: string
                  property2: string
                for_site: true
                gateway_mgmt:
                  app_usage: true
                  config_revert_timer: 10
                id: 458f6ec2-6276-4993-bfeb-53abbbba6f08
                led:
                  brightness: 0
                  enabled: true
                modified_time: 0
                mxtunnels:
                  property1:
                    ap_subnets:
                      - string
                    clusters:
                      - name: string
                        tunterm_hosts:
                          - string
                    created_time: 0
                    for_site: true
                    hello_interval: 60
                    hello_retries: 7
                    hosts:
                      - string
                    id: 457f6ec3-6276-4993-bfeb-53cbbbba6f08
                    modified_time: 0
                    mtu: 0
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    protocol: udp
                    radsec:
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      enabled: true
                      use_mxedge: true
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    vlan_ids:
                      - 0
                  property2:
                    ap_subnets:
                      - string
                    clusters:
                      - name: string
                        tunterm_hosts:
                          - string
                    created_time: 0
                    for_site: true
                    hello_interval: 60
                    hello_retries: 7
                    hosts:
                      - string
                    id: 456f6ec4-6276-4993-bfeb-53cbbbba6f08
                    modified_time: 0
                    mtu: 0
                    org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                    protocol: udp
                    radsec:
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      enabled: true
                      use_mxedge: true
                    site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                    vlan_ids:
                      - 0
                networks:
                  property1:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ospf_interface_type: string
                    subnet: string
                    vlan_id: 0
                    zone: string
                  property2:
                    dns:
                      - string
                    dns_suffix:
                      - string
                    gateway: string
                    ospf_interface_type: string
                    subnet: string
                    vlan_id: 0
                    zone: string
                ntp_servers:
                  - string
                occupancy:
                  assets_enabled: false
                  clients_enabled: true
                  min_duration: 3000
                  sdkclients_enabled: false
                  unconnected_clients_enabled: false
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                ospf_areas:
                  property1:
                    networks:
                      property1:
                        auth_keys:
                          property1: string
                          property2: string
                        auth_password: string
                        auth_type: none
                        interface_type: nbma
                        passive: false
                      property2:
                        auth_keys:
                          property1: string
                          property2: string
                        auth_password: string
                        auth_type: none
                        interface_type: nbma
                        passive: false
                    type: default
                  property2:
                    networks:
                      property1:
                        auth_keys:
                          property1: string
                          property2: string
                        auth_password: string
                        auth_type: none
                        interface_type: nbma
                        passive: false
                      property2:
                        auth_keys:
                          property1: string
                          property2: string
                        auth_password: string
                        auth_type: none
                        interface_type: nbma
                        passive: false
                    type: default
                persist_config_on_device: false
                port_usages:
                  dynamic:
                    mode: dynamic
                    rules:
                      - equals: string
                        expression: string
                        src: lldp_chassis_id
                        usage: string
                  property1:
                    all_networks: false
                    bypass_auth_when_server_down: true
                    description: string
                    disable_autoneg: false
                    disabled: false
                    duplex: auto
                    dynamic_vlan:
                      default_network: 0
                      enabled: true
                      networks:
                        property1: 0
                        property2: 0
                      type: standard
                    enable_mac_auth: true
                    enable_qos: true
                    guest_network: string
                    mac_limit: 0
                    mode: access
                    mtu: 0
                    networks:
                      - string
                    persist_mac: false
                    poe_disabled: false
                    port_auth: string
                    port_network: string
                    speed: string
                    storm_control:
                      no_broadcast: false
                      no_multicast: false
                      no_registered_multicast: false
                      no_unknown_unicast: false
                      percentage: 80
                    stp_edge: true
                    voip_network: string
                  property2:
                    all_networks: false
                    bypass_auth_when_server_down: true
                    description: string
                    disable_autoneg: false
                    disabled: false
                    duplex: auto
                    dynamic_vlan:
                      default_network: 0
                      enabled: true
                      networks:
                        property1: 0
                        property2: 0
                      type: standard
                    enable_mac_auth: true
                    enable_qos: true
                    guest_network: string
                    mac_limit: 0
                    mode: access
                    mtu: 0
                    networks:
                      - string
                    persist_mac: false
                    poe_disabled: false
                    port_auth: string
                    port_network: string
                    speed: string
                    storm_control:
                      no_broadcast: false
                      no_multicast: false
                      no_registered_multicast: false
                      no_unknown_unicast: false
                      percentage: 80
                    stp_edge: true
                    voip_network: string
                proxy:
                  url: string
                radio_config:
                  ant_gain_24: 0
                  ant_gain_5: 0
                  band_24:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  band_24_usage: "24"
                  band_5:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  band_5_on_24_radio:
                    allow_rrm_disable: true
                    ant_gain: 0
                    antenna_mode: default
                    bandwidth: 20
                    channel: 0
                    channels:
                      - 0
                    disabled: true
                    power: 0
                    power_max: 0
                    power_min: 0
                    preamble: short
                    usage: "24"
                  scanning_enabled: true
                radius_config:
                  acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      port: 1813
                      secret: string
                  auth_servers:
                    - host: string
                      port: 1812
                      secret: string
                  auth_servers_retries: 3
                  auth_servers_timeout: 5
                remote_syslog:
                  enabled: true
                  send_to_all_servers: true
                  servers:
                    - facility: any
                      host: string
                      port: 0
                      protocol: udp
                      severity: alert
                      tag: string
                report_gatt: false
                rogue:
                  enabled: true
                  honeypot_enabled: true
                  min_duration: 10
                  min_rssi: -80
                  whitelisted_bssids:
                    - string
                  whitelisted_ssids:
                    - string
                rtsa:
                  app_waking: false
                  disable_dead_reckoning: true
                  disable_pressure_sensor: true
                  enabled: true
                  track_asset: true
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                skyatp:
                  enabled: true
                  send_ip_mac_mapping: true
                ssh_keys:
                  - string
                status_portal:
                  enabled: true
                  hostnames:
                    - string
                switch_matching:
                  enable: true
                  rules:
                    - additional_config_cmds:
                        - string
                      name: string
                      port_config:
                        property1:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          esilag: true
                          usage: string
                        property2:
                          ae_disable_lacp: true
                          ae_idx: 0
                          aggregated: false
                          description: string
                          esilag: true
                          usage: string
                      property1: string
                      property2: string
                switch_mgmt:
                  config_revert_timer: 10
                  root_password: string
                track_anonymous_devices: false
                vars:
                  property1: string
                  property2: string
                vrf_instances:
                  property1:
                    extra_routes:
                      property1:
                        via: 192.168.0.1
                      property2:
                        via: 192.168.0.1
                    networks:
                      - string
                  property2:
                    extra_routes:
                      property1:
                        via: 192.168.0.1
                      property2:
                        via: 192.168.0.1
                    networks:
                      - string
                vrrp_groups:
                  property1:
                    auth_key: string
                    auth_password: string
                    auth_type: md5
                    networks:
                      property1:
                        ip: string
                      property2:
                        ip: string
                  property2:
                    auth_key: string
                    auth_password: string
                    auth_type: md5
                    networks:
                      property1:
                        ip: string
                      property2:
                        ip: string
                wids:
                  repeated_auth_failures:
                    duration: 0
                    threshold: 0
                wifi:
                  cisco_enabled: true
                  disable_11k: false
                  disable_radios_when_power_constrained: true
                  enable_arp_spoof_check: false
                  enable_channel_144: false
                  enable_shared_radio_scanning: true
                  enable_vna: false
                  enabled: true
                  locate_connected: false
                  locate_unconnected: false
                  mesh_allow_dfs: false
                  mesh_enabled: false
                  proxy_arp: default
                zone_occupancy_alert:
                  email_notifiers:
                    - string
                  enabled: false
                  threshold: 5
          schema:
            $ref: "#/components/schemas/site_setting"
      description: OK
    SiteTemplate:
      content:
        application/json:
          examples:
            example-1:
              value:
                auto_upgrade:
                  day_of_week: string
                  enabled: true
                  time_of_day: string
                  version: string
                name: string
                vars:
                  SSID_STR: string
                  VLAN_ID: string
          schema:
            $ref: "#/components/schemas/sitetemplate"
      description: Example response
    SiteTemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - auto_upgrade:
                    day_of_week: string
                    enabled: true
                    time_of_day: string
                    version: string
                  name: string
                  vars:
                    SSID_STR: string
                    VLAN_ID: string
          schema:
            items:
              $ref: "#/components/schemas/sitetemplate"
            type: array
      description: Example response
    Sitegroup:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_ids:
                  - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/sitegroup"
      description: OK
    SitegroupsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            items:
              $ref: "#/components/schemas/sitegroup"
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    SitesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
                  alarmtemplate_id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
                  apporttemplate_id: string
                  aptemplate_id: 16bdf952-ade2-4491-80b0-85ce506c760b
                  country_code: US
                  created_time: 0
                  gatewaytemplate_id: 6f9b2e75-9b2f-b5ae-81e3-e14c76f1a90f
                  id: 497f6eca-6276-5007-bfeb-53cbbbba6f08
                  latlng:
                    lat: 37.295833
                    lng: -122.032946
                  modified_time: 0
                  name: Mist Office
                  networktemplate_id: 12ae9bd2-e0ab-107b-72e8-a7a005565ec2
                  notes: string
                  org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                  rftemplate_id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
                  secpolicy_id: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
                  sitegroup_ids:
                    - 497f6eca-6276-5008-bfeb-53cbbbba6f08
                  timezone: America/Los_Angeles
          schema:
            items:
              $ref: "#/components/schemas/site"
            type: array
      description: OK
    SitesSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 0
                limit: 0
                next: string
                results:
                  - auto_upgrade_enabled: true
                    auto_upgrade_version: string
                    country_code: string
                    honeypot_enabled: true
                    id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    name: string
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    timestamp: 0
                    timezone: string
                    vna_enabled: true
                    wifi_enabled: true
                start: 0
                total: 0
          schema:
            description: ""
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    auto_upgrade_enabled:
                      type: boolean
                    auto_upgrade_version:
                      readOnly: true
                      type: string
                    country_code:
                      nullable: true
                      readOnly: true
                      type: string
                    honeypot_enabled:
                      type: boolean
                    id:
                      format: uuid
                      readOnly: true
                      type: string
                    name:
                      readOnly: true
                      type: string
                    org_id:
                      format: uuid
                      readOnly: true
                      type: string
                    site_id:
                      format: uuid
                      readOnly: true
                      type: string
                    timestamp:
                      readOnly: true
                      type: number
                    timezone:
                      readOnly: true
                      type: string
                    vna_enabled:
                      type: boolean
                    wifi_enabled:
                      type: boolean
                  required:
                    - honeypot_enabled
                    - wifi_enabled
                    - vna_enabled
                    - timezone
                    - country_code
                    - timestamp
                    - org_id
                    - site_id
                    - name
                    - id
                    - auto_upgrade_version
                    - auto_upgrade_enabled
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - results
              - start
              - end
              - limit
              - total
            type: object
      description: OK
    SleClassifierSummary:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier:
                  impact:
                    num_aps: 2
                    num_users: 17
                  interval: 3600
                  name: wifi-interference
                  samples:
                    degraded:
                      - 0
                      - 0
                      - 210.03334
                      - 3.1333334
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 102.5
                      - 108.03333
                      - 0
                      - 0
                      - 201.9
                      - 566.48334
                      - 135.63333
                      - 0
                    duration:
                      - 0
                      - 0
                      - 210.03334
                      - 3.1333334
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 102.5
                      - 108.03333
                      - 0
                      - 0
                      - 201.9
                      - 566.48334
                      - 135.63333
                      - 0
                    total:
                      - 1302.3
                      - 1289.0167
                      - 1396.3167
                      - 1423.6666
                      - 1439.2167
                      - 1414.7
                      - 1361.0834
                      - 1371.5834
                      - 1372.0667
                      - 1339.1
                      - 1374.3667
                      - 1369.9
                      - 1352.4833
                      - 1382.8
                      - 1426.7167
                      - 1425.6333
                      - 1403.9333
                      - 1420.75
                      - 1416.8334
                      - 1437.3334
                      - 1425.1
                      - 1485.3667
                      - 1426.4333
                      - 444.13333
                  x_label: seconds
                  y_label: user-minutes
                end: 1627312871
                failures: []
                impact:
                  num_aps: 2
                  num_users: 21
                  total_aps: 3
                  total_users: 26
                metric: capacity
                start: 1627226471
          schema:
            $ref: "#/components/schemas/sle_classifier_summary"
      description: Example response
    SleHistogram:
      content:
        application/json:
          examples:
            example-1:
              value:
                data:
                  - range:
                      - null
                      - 0
                    value: 0
                  - range:
                      - 0
                      - 10
                    value: 0
                  - range:
                      - 10
                      - 20
                    value: 5105
                  - range:
                      - 20
                      - 30
                    value: 10616
                  - range:
                      - 30
                      - 40
                    value: 40051
                  - range:
                      - 40
                      - 50
                    value: 141201
                  - range:
                      - 50
                      - 60
                    value: 949823
                  - range:
                      - 60
                      - 70
                    value: 686308
                  - range:
                      - 70
                      - 80
                    value: 177670
                  - range:
                      - 80
                      - 90
                    value: 689
                  - range:
                      - 90
                      - 100
                    value: 0
                  - range:
                      - 100
                      - null
                    value: 0
                end: 1627055181
                metric: capacity
                start: 1626968781
                x_label: available-bandwidth(%)
                y_label: seconds
          schema:
            $ref: "#/components/schemas/sle_histogram"
      description: Example response
    SleImpactSummary:
      content:
        application/json:
          examples:
            example-1:
              value:
                ap:
                  - ap_mac: 5c5b3550bd2e
                    degraded: 1486
                    duration: 0
                    name: ap43-off.lab
                    total: 27406
                  - ap_mac: d420b083e17a
                    degraded: 3
                    duration: 0
                    name: ap33-ent.lab
                    total: 1193
                band:
                  - band: "24"
                    degraded: 1410
                    duration: 0
                    name: "24"
                    total: 28536
                  - band: "5"
                    degraded: 78
                    duration: 0
                    name: "5"
                    total: 4679
                classifier: ""
                device_os:
                  - degraded: 1329
                    device_os: ""
                    duration: 0
                    name: unknown
                    total: 27165
                  - degraded: 81
                    device_os: Linux
                    duration: 0
                    name: Linux
                    total: 1437
                  - degraded: 36
                    device_os: Android 11
                    duration: 0
                    name: Android 11
                    total: 761
                  - degraded: 39
                    device_os: "14.6"
                    duration: 0
                    name: "14.6"
                    total: 2413
                  - degraded: 2
                    device_os: Catalina
                    duration: 0
                    name: Catalina
                    total: 1438
                device_type:
                  - degraded: 1410
                    device_type: ""
                    duration: 0
                    name: unknown
                    total: 28603
                  - degraded: 2
                    device_type: iPhone
                    duration: 0
                    name: iPhone
                    total: 1263
                  - degraded: 36
                    device_type: OnePlus
                    duration: 0
                    name: OnePlus
                    total: 761
                  - degraded: 37
                    device_type: iPad
                    duration: 0
                    name: iPad
                    total: 1150
                  - degraded: 2
                    device_type: Mac
                    duration: 0
                    name: Mac
                    total: 1438
                end: 1627312734
                failure: ""
                metric: capacity
                start: 1627226334
                wlan:
                  - degraded: 37
                    duration: 0
                    name: MlN.ADM
                    total: 1150
                    wlan_id: ba3f85fc-ba48-4d8f-ad89-152e5c42db18
                  - degraded: 1410
                    duration: 0
                    name: MlN
                    total: 28603
                    wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
                  - degraded: 41
                    duration: 0
                    name: MlN.1X
                    total: 3462
                    wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
          schema:
            $ref: "#/components/schemas/sle_impact_summary"
      description: Example response
    SleImpactedApplications:
      content:
        application/json:
          examples:
            example-1:
              value:
                apps:
                  - app: ZOOM
                    degraded: 371103
                    duration: 0
                    name: ZOOM
                    threshold: 173
                    total: 1771274
                classifier: ""
                end: 1668760746
                failure: ""
                limit: "1000"
                metric: application-health
                page: 1
                start: 1668121200
                total_count: 1
          schema:
            $ref: "#/components/schemas/sle_impacted_applications"
      description: Example response
    SleImpactedAps:
      content:
        application/json:
          examples:
            example-1:
              value:
                aps:
                  - ap_mac: 5c5b35500000
                    degraded: 1486
                    duration: 0
                    name: ap43.lab
                    total: 27377
                  - ap_mac: d420b0830000
                    degraded: 3
                    duration: 0
                    name: ap33.lab
                    total: 1189
                classifier: ""
                end: 1627313016
                failure: ""
                limit: 1000
                metric: capacity
                page: 1
                start: 1627226616
                total_count: 2
          schema:
            $ref: "#/components/schemas/sle_impacted_aps"
      description: Example response
    SleImpactedChassis:
      content:
        application/json:
          examples:
            example-1:
              value:
                chassis:
                  - chassis: "1"
                    degraded: 12.283334
                    duration: 13655.167
                    role: master
                    switch_mac: d0dd49012345
                    switch_name: test-chassis
                    total: 13655.167
                classifier: ""
                end: 1668760643
                failure: ""
                limit: 1000
                metric: switch-health
                page: 1
                start: 1668121200
                total_count: 1
          schema:
            $ref: "#/components/schemas/sle_impacted_chassis"
      description: Example response
    SleImpactedClients:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier: ""
                clients:
                  - degraded: 40
                    duration: 11014
                    mac: "001122334455"
                    name: test-device
                    switches:
                      - interfaces:
                          - ge-0/0/6
                        switch_mac: 2c2131001122
                        switch_name: test-ex
                    total: 11014
                end: 1668760198
                failure: ""
                limit: 1000
                metric: switch-throughput
                page: 1
                start: 1668726000
                total_count: 1
          schema:
            $ref: "#/components/schemas/sle_impacted_clients"
      description: Example response
    SleImpactedGateways:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier: ""
                end: 1668760746
                failure: ""
                gateways:
                  - degraded: 758573.1
                    duration: 2770997
                    gateway_mac: fc3342001122
                    gateway_model: SRX320
                    gateway_version: 20.4R1.12
                    name: test-SRX
                    total: 2770997
                limit: 1000
                metric: application-health
                page: 1
                start: 1668121200
                total_count: 1
          schema:
            $ref: "#/components/schemas/sle_impacted_gateways"
      description: Example response
    SleImpactedInterfaces:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier: ""
                end: 1668760198
                failure: ""
                interfaces:
                  - degraded: 11.583333
                    duration: 765.4667
                    interface_name: ge-0/0/10
                    switch_mac: 2c2131001122
                    switch_name: test-ex
                    total: 765.4667
                  - degraded: 191.08333
                    duration: 13775.35
                    interface_name: xe-0/1/0
                    switch_mac: 2c2131001122
                    switch_name: test-ex
                    total: 13775.35
                limit: 1000
                metric: switch-throughput
                page: 1
                start: 1668726000
                total_count: 5
          schema:
            $ref: "#/components/schemas/sle_impacted_interfaces"
      description: Example response
    SleImpactedSwitches:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier: ""
                end: 1668760198
                failure: ""
                limit: 1000
                metric: switch-throughput
                page: 1
                start: 1668726000
                switches:
                  - degraded: 109.88333
                    duration: 5753.75
                    interface:
                      - ge-0/0/11
                      - xe-0/1/0
                    name: test-ex
                    switch_mac: 2c2131001122
                    switch_model: EX2300-C-12P
                    switch_version: 20.4R3-S3.4
                    total: 5753.75
                total_count: 1
          schema:
            $ref: "#/components/schemas/sle_impacted_switches"
      description: Example response
    SleImpactedUsers:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifier: ""
                end: 1627313103
                failure: ""
                limit: 1000
                metric: capacity
                page: 1
                start: 1627226703
                total_count: 21
                users:
                  - ap_mac: d420b0830000
                    ap_name: ap33.lab
                    degraded: 2
                    device_os: "14.6"
                    device_type: iPhone
                    duration: 1270
                    mac: dc080f360000
                    name: aPhone-20973
                    ssid: lab.1X
                    total: 1270
                    wlan_id: a937da77-0000-0000-0000-f2134d7b1483
                  - ap_mac: 5c5b35500000
                    ap_name: ap43.lab
                    degraded: 36
                    device_os: Android 11
                    device_type: OnePlus
                    duration: 767
                    mac: 4c4feedc0000
                    name: OnePlus-8
                    ssid: lab.1X
                    total: 767
                    wlan_id: a937da77-0000-0000-0000-f2134d7b1483
                  - ap_mac: 5c5b35500000
                    ap_name: ap43.lab
                    degraded: 2
                    device_os: Catalina
                    device_type: Mac
                    duration: 1405
                    mac: a483e7390000
                    name: tmunzer-mbp
                    ssid: lab.1X
                    total: 1405
                    wlan_id: a937da77-0000-0000-0000-f2134d7b1483
                  - ap_mac: 5c5b35500000
                    ap_name: ap43.lab
                    degraded: 81
                    device_os: Linux
                    device_type: unknown
                    duration: 1403
                    mac: 5caafd0d0000
                    name: SonosZP
                    ssid: lab
                    total: 1403
                    wlan_id: 649a2336-0000-0000-0000-f637dbe50e7b
          schema:
            $ref: "#/components/schemas/sle_impacted_users"
      description: Example response
    SleSummary:
      content:
        application/json:
          examples:
            example-1:
              value:
                classifiers:
                  - impact:
                      num_aps: 1
                      num_users: 4
                      total_aps: 3
                      total_users: 26
                    interval: 3600
                    name: client-count
                    samples:
                      degraded:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 5.8
                        - 0
                        - 0
                        - 0
                        - 4.65
                        - 0
                        - 7.55
                        - 47.55
                        - 13.266666
                      duration:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 5.8
                        - 0
                        - 0
                        - 0
                        - 4.65
                        - 0
                        - 7.55
                        - 47.55
                        - 13.266666
                      total:
                        - 1302.3
                        - 1289.0167
                        - 1396.3167
                        - 1423.6666
                        - 1439.2167
                        - 1414.7
                        - 1361.0834
                        - 1371.5834
                        - 1372.0667
                        - 1339.1
                        - 1374.3667
                        - 1369.9
                        - 1352.4833
                        - 1382.8
                        - 1426.7167
                        - 1425.6333
                        - 1403.9333
                        - 1420.75
                        - 1416.8334
                        - 1437.3334
                        - 1425.1
                        - 1485.3667
                        - 1426.4333
                        - 289.83334
                    x_label: seconds
                    y_label: user-minutes
                  - impact:
                      num_aps: 2
                      num_users: 17
                      total_aps: 3
                      total_users: 26
                    interval: 3600
                    name: wifi-interference
                    samples:
                      degraded:
                        - 0
                        - 0
                        - 210.03334
                        - 3.1333334
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 102.5
                        - 108.03333
                        - 0
                        - 0
                        - 201.9
                        - 566.48334
                        - 135.63333
                        - 0
                      duration:
                        - 0
                        - 0
                        - 210.03334
                        - 3.1333334
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 102.5
                        - 108.03333
                        - 0
                        - 0
                        - 201.9
                        - 566.48334
                        - 135.63333
                        - 0
                      total:
                        - 1302.3
                        - 1289.0167
                        - 1396.3167
                        - 1423.6666
                        - 1439.2167
                        - 1414.7
                        - 1361.0834
                        - 1371.5834
                        - 1372.0667
                        - 1339.1
                        - 1374.3667
                        - 1369.9
                        - 1352.4833
                        - 1382.8
                        - 1426.7167
                        - 1425.6333
                        - 1403.9333
                        - 1420.75
                        - 1416.8334
                        - 1437.3334
                        - 1425.1
                        - 1485.3667
                        - 1426.4333
                        - 289.83334
                    x_label: seconds
                    y_label: user-minutes
                  - impact:
                      num_aps: 0
                      num_users: 0
                      total_aps: 3
                      total_users: 26
                    interval: 3600
                    name: client-usage
                    samples:
                      degraded:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                      duration:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                      total:
                        - 1302.3
                        - 1289.0167
                        - 1396.3167
                        - 1423.6666
                        - 1439.2167
                        - 1414.7
                        - 1361.0834
                        - 1371.5834
                        - 1372.0667
                        - 1339.1
                        - 1374.3667
                        - 1369.9
                        - 1352.4833
                        - 1382.8
                        - 1426.7167
                        - 1425.6333
                        - 1403.9333
                        - 1420.75
                        - 1416.8334
                        - 1437.3334
                        - 1425.1
                        - 1485.3667
                        - 1426.4333
                        - 289.83334
                    x_label: seconds
                    y_label: user-minutes
                  - impact:
                      num_aps: 1
                      num_users: 17
                      total_aps: 3
                      total_users: 26
                    interval: 3600
                    name: non-wifi-interference
                    samples:
                      degraded:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 16.65
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 31.15
                        - 17.616667
                        - 17.85
                        - 0
                        - 0
                        - 0
                        - 0
                      duration:
                        - 0
                        - 0
                        - 0
                        - 0
                        - 16.65
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 0
                        - 31.15
                        - 17.616667
                        - 17.85
                        - 0
                        - 0
                        - 0
                        - 0
                      total:
                        - 1302.3
                        - 1289.0167
                        - 1396.3167
                        - 1423.6666
                        - 1439.2167
                        - 1414.7
                        - 1361.0834
                        - 1371.5834
                        - 1372.0667
                        - 1339.1
                        - 1374.3667
                        - 1369.9
                        - 1352.4833
                        - 1382.8
                        - 1426.7167
                        - 1425.6333
                        - 1403.9333
                        - 1420.75
                        - 1416.8334
                        - 1437.3334
                        - 1425.1
                        - 1485.3667
                        - 1426.4333
                        - 289.83334
                    x_label: seconds
                    y_label: user-minutes
                end: 1627312606
                events: []
                impact:
                  num_aps: 2
                  num_users: 21
                  total_aps: 3
                  total_users: 26
                sle:
                  interval: 3600
                  name: capacity
                  samples:
                    degraded:
                      - 0
                      - 0
                      - 210.03334
                      - 3.1333334
                      - 16.65
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 5.8
                      - 102.5
                      - 139.18333
                      - 17.616667
                      - 22.5
                      - 201.9
                      - 574.0333
                      - 183.18333
                      - 13.266666
                    total:
                      - 1302.3
                      - 1289.0167
                      - 1396.3167
                      - 1423.6666
                      - 1439.2167
                      - 1414.7
                      - 1361.0834
                      - 1371.5834
                      - 1372.0667
                      - 1339.1
                      - 1374.3667
                      - 1369.9
                      - 1352.4833
                      - 1382.8
                      - 1426.7167
                      - 1425.6333
                      - 1403.9333
                      - 1420.75
                      - 1416.8334
                      - 1437.3334
                      - 1425.1
                      - 1485.3667
                      - 1426.4333
                      - 289.83334
                    value:
                      - 0.6764934
                      - 0.6783766
                      - 0.641645
                      - 0.6934629
                      - 0.68676674
                      - 0.6834809
                      - 0.6961604
                      - 0.6979584
                      - 0.7033722
                      - 0.70410794
                      - 0.7025278
                      - 0.70305353
                      - 0.70292175
                      - 0.7009334
                      - 0.69344264
                      - 0.68596864
                      - 0.5952168
                      - 0.62183666
                      - 0.68161446
                      - 0.65352744
                      - 0.6183489
                      - 0.54178274
                      - 0.6044712
                      - 0.66845906
                  x_label: seconds
                  y_label: "%"
                start: 1627226206
          schema:
            $ref: "#/components/schemas/sle_summary"
      description: Example response
    SleThreshold:
      content:
        application/json:
          examples:
            example-1:
              value:
                default: -72
                direction: left
                maximum: -60
                metric: coverage
                minimum: -90
                threshold: "-66"
                units: dBm
          schema:
            $ref: "#/components/schemas/sle_threshold"
      description: Example response
    Sso:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                custom_logout_url: string
                default_role: string
                domain: string
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                idp_cert: string
                idp_sign_algo: string
                idp_sso_url: string
                ignore_unmatched_roles: true
                issuer: string
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                nameid_format: email
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                type: string
          schema:
            $ref: "#/components/schemas/sso"
      description: OK
    SsoLatestFailures:
      content:
        application/json:
          examples:
            example-1:
              value:
                results:
                  - detail: string
                    saml_assertion_xml: string
                    timestamp: 0
          schema:
            properties:
              results:
                items:
                  properties:
                    detail:
                      type: string
                    saml_assertion_xml:
                      type: string
                    timestamp:
                      type: number
                  required:
                    - timestamp
                    - detail
                    - saml_assertion_xml
                minItems: 1
                type: array
                uniqueItems: true
            required:
              - results
            type: object
      description: OK
    SsoSamlMetadata:
      content:
        application/json:
          examples:
            example-1:
              value:
                acs_url: https://api.mist.com/api/v1/saml/llDfa13f/login
                entity_id: https://api.mist.com/api/v1/saml/llDfa13f/login
                logout_url: https://api.mist.com/api/v1/saml/llDfa13f/logout
                metadata_xml: <?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://api.mist.com/api/v1/saml/llDfa13f/login" validUntil="2027-10-12T21:59:01Z" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/llDfa13f/login" index="0" isDefault="true"/></md:SPSSODescriptor></md:EntityDescriptor>
          schema:
            properties:
              acs_url:
                example: https://api.mist.com/api/v1/saml/llDfa13f/login
                readOnly: true
                type: string
              entity_id:
                example: https://api.mist.com/api/v1/saml/llDfa13f/login
                readOnly: true
                type: string
              logout_url:
                example: https://api.mist.com/api/v1/saml/llDfa13f/logout
                readOnly: true
                type: string
              metadata_xml:
                example: <?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://api.mist.com/api/v1/saml/llDfa13f/login" validUntil="2027-10-12T21:59:01Z" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://api.mist.com/api/v1/saml/llDfa13f/login" index="0" isDefault="true"/></md:SPSSODescriptor></md:EntityDescriptor>
                readOnly: true
                type: string
            required:
              - acs_url
              - logout_url
              - metadata_xml
              - entity_id
            type: object
      description: OK
    Ssorole:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                privileges:
                  - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    msp_name: string
                    name: string
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    org_name: string
                    orggroup_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    role: admin
                    scope: org
                    site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/ssorole"
      description: OK
    SsorolesArray:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/ssorole"
            type: array
      description: Example response
    SsosArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  custom_logout_url: string
                  default_role: string
                  domain: string
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  idp_cert: string
                  idp_sign_algo: string
                  idp_sso_url: string
                  ignore_unmatched_roles: true
                  issuer: string
                  modified_time: 0
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  name: string
                  nameid_format: email
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  type: string
          schema:
            items:
              $ref: "#/components/schemas/sso"
            type: array
      description: OK
    SsrUpgrade:
      content:
        application/json:
          examples:
            example-1:
              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: {}
          schema:
            $ref: "#/components/schemas/ssr_upgrade_response"
      description: Example response
    SsrUpgradesArray:
      content:
        application/json:
          examples:
            example-1:
              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: {}
          schema:
            items:
              $ref: "#/components/schemas/ssr_upgrade_response"
            type: array
      description: Example response
    Template:
      content:
        application/json:
          examples:
            example-1:
              value:
                applies:
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  sitegroup_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                created_time: 0
                deviceprofile_ids:
                  - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                exceptions:
                  site_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  sitegroup_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                filter_by_deviceprofile: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            $ref: "#/components/schemas/template"
      description: OK
    TemplatesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - applies:
                    org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    site_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  created_time: 0
                  deviceprofile_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  exceptions:
                    site_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                    sitegroup_ids:
                      - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  filter_by_deviceprofile: true
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          schema:
            items:
              $ref: "#/components/schemas/template"
            type: array
      description: OK
    Ticket:
      content:
        application/json:
          examples:
            example-1:
              value:
                comments:
                  - attachments:
                      - content_type: string
                        content_url: string
                        size: 0
                    author: string
                    comment: string
                    created_at: 0
                created_at: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                requester: string
                status: open
                subject: string
                type: string
                updated_at: 0
          schema:
            $ref: "#/components/schemas/ticket"
      description: OK
    TicketsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - comments:
                    - attachments:
                        - content_type: string
                          content_url: string
                          size: 0
                      author: string
                      comment: string
                      created_at: 0
                  created_at: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  requester: string
                  status: open
                  subject: string
                  type: string
                  updated_at: 0
          schema:
            items:
              $ref: "#/components/schemas/ticket"
            type: array
      description: OK
    TunnelsSearch:
      content:
        application/json:
          examples:
            "`type`==`wan`":
              value:
                end: 1531862583
                limit: 10
                results:
                  - auth_algo: hmac-md5-96
                    encrypt_algo: aes-256-cbc
                    ike_version: "2"
                    ip: 192.168.233.0
                    last_event: down reason
                    mac: 020001ae9dd5
                    node: node0
                    org_id: 78c11da8-f984-4425-bedb-a7ddd7d0f6da
                    peer_host: sunnyvale1-vpn.zscalerbeta.net
                    peer_ip: 10.224.8.16
                    protocol: ipsec
                    rx_bytes: 150
                    rx_pkts: 75
                    site_id: e83e7928-eda1-4e93-82db-df3dd42ab726
                    tunnel_name: Device-ipsec-1
                    tx_bytes: 100
                    tx_pkts: 50
                    up: true
                    uptime: 10
                start: 1531776183
                total: 1
            "`type`==`wxtunnel`":
              value:
                end: 1531862583
                limit: 10
                results:
                  - ap: 5c5b35000010
                    last_seen: 1547437078
                    mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
                    mxedge_id: 387804a7-3474-85ce-15a2-f9a9684c9c90
                    mxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
                    org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                    peer_mxedge_id: 09320a5c-bc23-441e-80a0-b96c632d45f5
                    remote_ip: 172.16.1.2
                    remote_port: 13535
                    rx_control_pkts: 7571
                    sessions:
                      - local_sid: 31
                        remote_id: mxtunnel
                        remote_sid: 13
                        state: established
                    site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                    state: established_with_sessions
                    tx_control_pkts: 14862
                    uptime: 135
                start: 1531776183
                total: 1
          schema:
            properties:
              end:
                type: integer
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  anyOf:
                    - $ref: "#/components/schemas/stats_mxtunnel"
                    - $ref: "#/components/schemas/stats_wantunnel"
                type: array
              start:
                type: integer
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    UpgradeStatus:
      content:
        application/json:
          examples:
            example-1:
              value:
                status: inprogress
                status_id: 5
                timestamp: 1428949501
          schema:
            properties:
              status:
                enum:
                  - starting
                  - inprogress
                  - success
                  - error
                  - scheduled
                type: string
              status_id:
                description: the internal status id
                type: integer
              timestamp:
                description: timestamp
                type: number
            required:
              - timestamp
              - status
              - status_id
            type: object
      description: OK
    VBeacon:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                major: 0
                map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                message: string
                minor: 0
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                power: 4
                power_mode: default
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                url: string
                uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                wayfinding_nodename: string
                x: 0
                y: 0
          schema:
            $ref: "#/components/schemas/vbeacon"
      description: OK
    VBeaconsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  major: 0
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  message: string
                  minor: 0
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  power: 4
                  power_mode: default
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  url: string
                  uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wayfinding_nodename: string
                  x: 0
                  y: 0
          schema:
            items:
              $ref: "#/components/schemas/vbeacon"
            type: array
      description: OK
    Vc:
      content:
        application/json:
          examples:
            example-1:
              value:
                id:
                  members:
                    - mac: string
                      member: 0
                      vc_ports:
                        - string
                      vc_role: master
                  op: add
          schema:
            properties:
              id:
                $ref: "#/components/schemas/device_switch_vc"
            type: object
      description: Example response
    Vpn:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: 497f6eca-6276-5009-bfeb-53cbbbba6f08
                modified_time: 0
                name: string
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                paths:
                  property1:
                    bfd_profile: broadband
                    ip: string
                  property2:
                    bfd_profile: broadband
                    ip: string
          schema:
            $ref: "#/components/schemas/vpn"
      description: Example response
    VpnsArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - name: string
                  paths:
                    property1:
                      bfd_profile: broadband
                      ip: string
                    property2:
                      bfd_profile: lte
                      ip: string
          schema:
            items:
              $ref: "#/components/schemas/vpn"
            type: array
      description: Example response
    Webhook:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                enabled: true
                headers: {}
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                secret: string
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                splunk_token: string
                topics:
                  - location
                type: http-post
                url: string
                verify_cert: true
          schema:
            $ref: "#/components/schemas/webhook"
      description: OK
    WebhooksArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  enabled: true
                  headers: {}
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  secret: string
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  splunk_token: string
                  topics:
                    - location
                  type: http-post
                  url: string
                  verify_cert: true
          schema:
            items:
              $ref: "#/components/schemas/webhook"
            type: array
      description: OK
    WiredClientsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1648529800.8221116
                limit: 1000
                results:
                  - device_mac:
                      - "001122334455"
                    device_mac_port:
                      - device_mac: "001122334455"
                        ip: ""
                        port_id: et-0/0/1
                        port_parent: ""
                        start: 2020-12-10T00:07:36.262+0000
                        vlan: 1
                        when: 2022-03-29T04:56:05.172+0000
                    ip:
                      - 11.216.202.61
                    mac: "112233445566"
                    org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                    port_id:
                      - et-0/0/1
                    site_id: c168ddee-c14c-11e5-8e81-1258369c38a9
                    timestamp: 1571174567.807
                    vlan:
                      - 0
                      - 1001
                start: 1648443400.8221116
                total: 1
          schema:
            properties:
              end:
                type: number
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  $ref: "#/components/schemas/wired_client.response"
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: number
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    WirelessClientSessionsSearch:
      content:
        application/json:
          examples:
            example-1:
              value:
                end: 1513177200
                limit: 10
                results:
                  - ap: 5c5b350e0262
                    band: "5"
                    client_manufacture: Apple
                    connect: 1565208388
                    disconnect: 1565208448
                    duration: 60.09423865
                    mac: b019c66c8348
                    org_id: 3139f2c2-fac6-11e5-8156-0242ac110006
                    site_id: 70e0f468-fc13-11e5-85ad-0242ac110008
                    ssid: Dummy WLAN 2
                    tags:
                      - disassociate
                    timestamp: 1565208448.662
                    wlan_id: 99bb4c74-f954-4f36-b844-6b030faffabc
                start: 1511967600
                total: 100
          schema:
            properties:
              end:
                type: number
              limit:
                type: integer
              next:
                type: string
              results:
                items:
                  properties:
                    ap:
                      readOnly: true
                      type: string
                    band:
                      readOnly: true
                      type: string
                    client_manufacture:
                      nullable: true
                      readOnly: true
                      type: string
                    connect:
                      readOnly: true
                      type: integer
                    disconnect:
                      readOnly: true
                      type: integer
                    duration:
                      readOnly: true
                      type: number
                    for_site:
                      readOnly: true
                      type: boolean
                    mac:
                      readOnly: true
                      type: string
                    org_id:
                      format: uuid
                      readOnly: true
                      type: string
                    site_id:
                      format: uuid
                      readOnly: true
                      type: string
                    ssid:
                      readOnly: true
                      type: string
                    tags:
                      items:
                        type: string
                      readOnly: true
                      type: array
                    timestamp:
                      readOnly: true
                      type: number
                    wlan_id:
                      format: uuid
                      readOnly: true
                      type: string
                  required:
                    - ap
                    - band
                    - client_manufacture
                    - connect
                    - disconnect
                    - duration
                    - mac
                    - org_id
                    - site_id
                    - ssid
                    - timestamp
                    - wlan_id
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: number
              total:
                type: integer
            required:
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    Wlan:
      content:
        application/json:
          examples:
            example-1:
              value:
                acct_interim_interval: 0
                acct_servers:
                  - host: string
                    port: 1813
                    secret: string
                airwatch:
                  api_key: string
                  console_url: string
                  enabled: true
                  password: string
                  username: string
                allow_ipv6_ndp: true
                allow_mdns: false
                ap_ids:
                  - 097f6eca-6276-4993-bfeb-53cbbbba6f08
                app_limit:
                  apps: {}
                  enabled: true
                  wxtag_ids: {}
                app_qos:
                  apps:
                    skype-business-video:
                      dscp: 0
                      dst_subnet: string
                      src_subnet: string
                    skype-business-voice:
                      dscp: 0
                  enabled: true
                  others:
                    - dscp: 0
                      dst_subnet: string
                      port_ranges: string
                      protocol: string
                      src_subnet: string
                apply_to: site
                arp_filter: false
                auth:
                  eap_reauth: false
                  enable_mac_auth: false
                  key_idx: 1
                  keys:
                    - string
                  multi_psk_only: false
                  owe: string
                  pairwise:
                    - wpa2-ccmp
                  private_wlan: true
                  psk: stringst
                  type: open
                  wep_as_secondary_auth: true
                auth_server_selection: ordered
                auth_servers:
                  - host: string
                    port: 1812
                    secret: string
                auth_servers_nas_id: string
                auth_servers_nas_ip: string
                auth_servers_retries: 3
                auth_servers_timeout: 5
                band: string
                band_steer: false
                band_steer_force_band5: false
                block_blacklist_clients: true
                bonjour:
                  additional_vlan_ids:
                    - 0
                  enabled: false
                  services:
                    property1:
                      disable_local: false
                      radius_groups:
                        - string
                      scope: string
                    property2:
                      disable_local: false
                      radius_groups:
                        - string
                      scope: string
                cisco_cwa:
                  allowed_hostnames:
                    - string
                  allowed_subnets:
                    - string
                  enabled: true
                client_limit_down: 0
                client_limit_down_enabled: false
                client_limit_up: 0
                client_limit_up_enabled: false
                coa_servers:
                  - disable_event_timestamp_check: true
                    enabled: true
                    ip: 192.168.0.1
                    port: string
                    secret: string
                created_time: 0
                disable_11ax: false
                disable_ht_vht_rates: false
                disable_uapsd: false
                disable_wmm: false
                dns_server_rewrite:
                  enabled: true
                  radius_groups: {}
                dtim: 2
                dynamic_psk:
                  default_psk: stringst
                  default_vlan_id: 0
                  enabled: true
                  source: radius
                  vlan_ids:
                    - 1
                dynamic_vlan:
                  default_vlan_id: 999
                  enabled: false
                  local_vlan_ids:
                    - 1
                  type: standard
                  vlans:
                    property1: string
                    property2: string
                enable_wireless_bridging: true
                enabled: true
                for_site: true
                hide_ssid: false
                hostname_ie: false
                hotspot20:
                  enabled: true
                  operators:
                    - string
                  venue_name: string
                id: 197f6eca-6276-4993-bfeb-53cbbbba6f08
                interface: all
                isolation: false
                legacy_overds: true
                limit_bcast: false
                limit_probe_response: true
                max_idletime: 1800
                modified_time: 0
                msp_id: c0cf23fc-d82f-4219-988c-82fb61d8c875
                mxtunnel: {}
                mxtunnel_id: 6741baab-cbd6-45bd-9e5b-93e8eede3c80
                mxtunnel_name: default
                no_static_dns: false
                no_static_ip: false
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                portal:
                  amazon_client_id: string
                  amazon_client_secret: string
                  amazon_email_domains:
                    - string
                  amazon_enabled: true
                  auth: none
                  azure_client_id: string
                  azure_client_secret: string
                  azure_enabled: true
                  azure_tenant_id: string
                  broadnet_password: string
                  broadnet_sid: string
                  broadnet_user_id: string
                  bypass_when_cloud_down: false
                  clickatell_api_key: string
                  email_enabled: true
                  enabled: false
                  expire: 1440
                  external_portal_url: string
                  facebook_client_id: string
                  facebook_client_secret: string
                  facebook_email_domains:
                    - string
                  facebook_enabled: true
                  forward: false
                  forward_url: string
                  google_client_id: string
                  google_client_secret: string
                  google_email_domains:
                    - string
                  google_enabled: true
                  gupshup_password: string
                  gupshup_userid: string
                  microsoft_client_id: string
                  microsoft_client_secret: string
                  microsoft_email_domains:
                    - string
                  microsoft_enabled: true
                  passphrase_enabled: true
                  password: string
                  portal_allowed_hostnames: string
                  portal_allowed_subnets: string
                  portal_api_secret: string
                  portal_denied_hostnames: string
                  portal_image: string
                  portal_sso_url: string
                  predefined_sponsors_enabled: true
                  privacy: true
                  puzzel_password: string
                  puzzel_service_id: string
                  puzzel_username: string
                  smsMessageFormat: string
                  sms_enabled: true
                  sms_provider: manual
                  sponsor_email_domains:
                    - string
                  sponsor_enabled: true
                  sponsor_link_validity_duration: string
                  sponsor_notify_all: false
                  sponsors:
                    property1: string
                    property2: string
                  sso_default_role: string
                  sso_forced_role: string
                  sso_idp_cert: string
                  sso_idp_sign_algo: string
                  sso_idp_sso_url: string
                  sso_issuer: string
                  sso_nameid_format: email
                  thumbnail: string
                  twilio_auth_token: string
                  twilio_phone_number: string
                  twilio_sid: string
                portal_allowed_hostnames:
                  - string
                portal_allowed_subnets:
                  - string
                portal_api_secret: string
                portal_denied_hostnames:
                  - string
                portal_image: http://example.com
                portal_sso_url: string
                portal_template_url: string
                qos:
                  class: best_effort
                  overwrite: false
                radsec:
                  enabled: true
                  idle_timeout: 0
                  server_name: string
                  servers:
                    - host: string
                      port: 0
                  use_mxedge: true
                rateset:
                  "5":
                    ht: string
                    legacy:
                      - string
                    min_rssi: 0
                    template: string
                    vht: string
                  "24":
                    ht: string
                    legacy:
                      - string
                    min_rssi: 0
                    template: string
                    vht: string
                roam_mode: none
                schedule:
                  enabled: false
                  hours: {}
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                sle_excluded: false
                ssid: string
                template_id: c6d67e98-83ea-49f0-8812-e4abae2b68bc
                thumbnail: http://example.com
                use_eapol_v1: false
                vlan_enabled: false
                vlan_id: 1
                vlan_ids:
                  - 1
                vlan_pooling: false
                wlan_limit_down: 0
                wlan_limit_down_enabled: false
                wlan_limit_up: 0
                wlan_limit_up_enabled: false
                wxtag_ids:
                  - 297f6eca-6276-4993-bfeb-53cbbbba6f08
                wxtunnel_id: string
                wxtunnel_remote_id: string
          schema:
            $ref: "#/components/schemas/wlan"
      description: OK
    WlansArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - acct_interim_interval: 0
                  acct_servers:
                    - host: string
                      port: 0
                      secret: string
                  airwatch:
                    api_key: string
                    console_url: string
                    enabled: true
                    password: string
                    username: string
                  allow_ipv6_ndp: true
                  allow_mdns: true
                  ap_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  app_limit:
                    apps: {}
                    enabled: true
                    wxtag_ids: {}
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 0
                        dst_subnet: string
                        src_subnet: string
                      skype-business-voice:
                        dscp: 0
                    enabled: true
                    others:
                      - dscp: 0
                        dst_subnet: string
                        port_ranges: string
                        protocol: string
                        src_subnet: string
                  apply_to: site
                  arp_filter: true
                  auth:
                    eap_reauth: true
                    enable_mac_auth: true
                    key_idx: 1
                    keys:
                      - string
                    multi_psk_only: true
                    owe: string
                    pairwise:
                      - string
                    private_wlan: true
                    psk: string123
                    type: open
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                    - host: string
                      port: 0
                      secret: string
                  auth_servers_nas_id: string
                  auth_servers_nas_ip: string
                  auth_servers_retries: 0
                  auth_servers_timeout: 0
                  band: string
                  band_steer: true
                  band_steer_force_band5: true
                  block_blacklist_clients: true
                  bonjour:
                    additional_vlan_ids:
                      - 0
                    enabled: true
                    services:
                      property1:
                        disable_local: true
                        radius_groups:
                          - string
                        scope: string
                      property2:
                        disable_local: true
                        radius_groups:
                          - string
                        scope: string
                  cisco_cwa:
                    allowed_hostnames:
                      - string
                    allowed_subnets:
                      - string
                    enabled: true
                  client_limit_down: 0
                  client_limit_down_enabled: true
                  client_limit_up: 0
                  client_limit_up_enabled: true
                  coa_servers:
                    - disable_event_timestamp_check: true
                      enabled: true
                      ip: 192.168.1.1
                      port: "3799"
                      secret: string
                  created_time: 0
                  disable_11ax: true
                  disable_uapsd: true
                  disable_wmm: true
                  dns_server_rewrite:
                    enabled: true
                    radius_groups: {}
                  dtim: 0
                  dynamic_psk:
                    default_vlan_id: 1
                    enabled: true
                    source: radius
                    vlan_ids:
                      - 1
                  dynamic_vlan:
                    default_vlan_id: 1
                    enabled: true
                    local_vlan_ids:
                      - 1
                    type: standard
                    vlans: {}
                  enable_wireless_bridging: true
                  enabled: true
                  hide_ssid: true
                  hostname_ie: true
                  hotspot20:
                    enabled: true
                    operators:
                      - string
                    venue_name: string
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  interface: all
                  isolation: true
                  legacy_overds: true
                  limit_bcast: true
                  limit_probe_response: true
                  max_idletime: 60
                  modified_time: 0
                  msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  mxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  no_static_dns: true
                  no_static_ip: true
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  portal:
                    amazon_client_id: string
                    amazon_client_secret: string
                    amazon_email_domains:
                      - string
                    amazon_enabled: true
                    auth: none
                    azure_client_id: string
                    azure_client_secret: string
                    azure_enabled: true
                    azure_tenant_id: string
                    bypass_when_cloud_down: true
                    email_enabled: true
                    enabled: true
                    expire: 0
                    external_portal_url: string
                    facebook_client_id: string
                    facebook_client_secret: string
                    facebook_email_domains:
                      - string
                    facebook_enabled: true
                    forward: true
                    forward_url: string
                    google_email_domains:
                      - string
                    google_enabled: true
                    microsoft_client_id: string
                    microsoft_client_secret: string
                    microsoft_email_domains:
                      - string
                    microsoft_enabled: true
                    passphrase_enabled: true
                    password: string
                    portal_allowed_hostnames: string
                    portal_allowed_subnets: string
                    portal_api_secret: string
                    portal_denied_hostnames: string
                    portal_image: string
                    portal_sso_url: string
                    privacy: true
                    sms_enabled: true
                    sms_provider: manual
                    sponsor_email_domains:
                      - string
                    sponsor_enabled: true
                    sponsor_link_validity_duration: "60"
                    sponsors:
                      property1: string
                      property2: string
                    sso_default_role: string
                    sso_idp_cert: string
                    sso_idp_sign_algo: string
                    sso_idp_sso_url: string
                    sso_issuer: string
                    thumbnail: string
                    twilio_auth_token: string
                    twilio_phone_number: string
                    twilio_sid: string
                  portal_allowed_hostnames:
                    - string
                  portal_allowed_subnets:
                    - string
                  portal_api_secret: string
                  portal_denied_hostnames:
                    - string
                  portal_image: http://example.com
                  portal_sso_url: string
                  portal_template_url: string
                  qos:
                    class: best_effort
                    overwrite: true
                  radsec:
                    enabled: true
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                    use_mxedge: true
                  rateset:
                    "5":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                    "24":
                      ht: string
                      legacy:
                        - string
                      min_rssi: 0
                      template: string
                      vht: string
                  roam_mode: 11r
                  schedule:
                    enabled: true
                    hours: {}
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  sle_excluded: true
                  ssid: string
                  thumbnail: http://example.com
                  use_eapol_v1: true
                  vlan_enabled: true
                  vlan_id: 1
                  vlan_ids:
                    - 1
                  vlan_pooling: true
                  wlan_limit_down: 0
                  wlan_limit_down_enabled: true
                  wlan_limit_up: 0
                  wlan_limit_up_enabled: true
                  wxtag_ids:
                    - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  wxtunnel_remote_id: string
          schema:
            items:
              $ref: "#/components/schemas/wlan"
            type: array
      description: OK
    Wxrule:
      content:
        application/json:
          examples:
            example-1:
              value:
                action: allow
                blocked_apps:
                  - string
                created_time: 0
                dst_allow_wxtags:
                  - string
                dst_deny_wxtags:
                  - string
                enabled: true
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                order: 0
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                src_wxtags:
                  - string
          schema:
            $ref: "#/components/schemas/wxlan_rule"
      description: OK
    WxruleArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - action: allow
                  blocked_apps:
                    - string
                  created_time: 0
                  dst_allow_wxtags:
                    - string
                  dst_deny_wxtags:
                    - string
                  enabled: true
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  order: 0
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  src_wxtags:
                    - string
          schema:
            items:
              $ref: "#/components/schemas/wxlan_rule"
            type: array
      description: OK
    Wxtag:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                last_ips:
                  - string
                mac: string
                match: wlan_id
                modified_time: 0
                name: string
                op: in
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                resource_mac: string
                services:
                  - string
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                specs:
                  - port_range: string
                    protocol: tcp
                    subnet:
                      - string
                subnet: string
                type: match
                values:
                  - string
          schema:
            $ref: "#/components/schemas/wxlan_tag"
      description: OK
    WxtagApps:
      content:
        application/json:
          examples:
            example-1:
              value:
                - group: Emails
                  key: gmail
                  name: Gmail - web/app
          schema:
            items:
              properties:
                group:
                  type: string
                key:
                  type: string
                name:
                  type: string
              required:
                - key
                - name
                - group
              type: object
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    WxtagArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  last_ips:
                    - string
                  mac: string
                  match: wlan_id
                  modified_time: 0
                  name: string
                  op: in
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  resource_mac: string
                  services:
                    - string
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  specs:
                    - port_range: string
                      protocol: tcp
                      subnet:
                        - string
                  subnet: string
                  type: match
                  values:
                    - string
          schema:
            items:
              $ref: "#/components/schemas/wxlan_tag"
            type: array
      description: OK
    WxtagClients:
      content:
        application/json:
          examples:
            example-1:
              value:
                - mac: 5684dae9ac8b
                  since: 1428939600
          schema:
            items:
              properties:
                mac:
                  type: string
                since:
                  type: number
              required:
                - mac
                - since
              type: object
            minItems: 1
            type: array
            uniqueItems: true
      description: OK
    Wxtunnel:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                dmvpn:
                  enabled: true
                  holding_time: 0
                  host_routes:
                    - string
                for_mgmt: true
                hello_interval: 1
                hello_retries: 3
                hostname: string
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                ipsec:
                  enabled: true
                  psk: string123
                is_static: true
                modified_time: 0
                mtu: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                peers:
                  - string
                router_id: string
                secret: string
                sessions:
                  - ap_as_session_id: string
                    comment: string
                    enable_cookie: true
                    ethertype: ethernet
                    local_session_id: 1
                    pseudo_802.1ad_enabled: true
                    remote_id: string
                    remote_session_id: 1
                    use_ap_as_session_ids: true
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                udp_port: 0
                use_udp: true
          schema:
            $ref: "#/components/schemas/wxlan_tunnel"
      description: OK
    WxtunnelArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  dmvpn:
                    enabled: true
                    holding_time: 0
                    host_routes:
                      - string
                  for_mgmt: true
                  hello_interval: 1
                  hello_retries: 3
                  hostname: string
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  ipsec:
                    enabled: true
                    psk: string123
                  is_static: true
                  modified_time: 0
                  mtu: 1500
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  peers:
                    - string
                  router_id: string
                  secret: string
                  sessions:
                    - ap_as_session_id: string
                      comment: string
                      enable_cookie: true
                      ethertype: ethernet
                      local_session_id: 1
                      pseudo_802.1ad_enabled: true
                      remote_id: string
                      remote_session_id: 1
                      use_ap_as_session_ids: true
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  udp_port: 0
                  use_udp: true
          schema:
            items:
              $ref: "#/components/schemas/wxlan_tunnel"
            minItems: 0
            type: array
      description: OK
    Zone:
      content:
        application/json:
          examples:
            example-1:
              value:
                created_time: 0
                id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                modified_time: 0
                name: string
                org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                vertices:
                  - x: 0
                    y: 0
          schema:
            $ref: "#/components/schemas/zone"
      description: OK
    ZonesArray:
      content:
        application/json:
          examples:
            example-1:
              value:
                - created_time: 0
                  id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  modified_time: 0
                  name: string
                  org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  vertices:
                    - x: 0
                      y: 0
          schema:
            items:
              $ref: "#/components/schemas/zone"
            type: array
      description: OK
    assignSuccess:
      content:
        application/json:
          examples:
            example-1:
              value:
                success:
                  - 5c5b350e0001
          schema:
            properties:
              success:
                items:
                  type: string
                type: array
            required:
              - success
            type: object
      description: OK - list only devices that has deviceprofile_id changed
    claimLicense:
      content:
        application/json:
          examples:
            license(s) successfully claimed and applied:
              value:
                inventory_added:
                  - mac: 5c5b35000018
                    magic: 6JG8EPTFV2A9Z2N
                    model: AP41
                    serial: FXLH2015150025
                    type: ap
                inventory_duplicated:
                  - mac: 5c5b35000012
                    magic: DVH4VSNMSZPDXBR
                    model: AP41
                    serial: FXLH2015150027
                    type: ap
                license_added:
                  - end: 1520380800
                    quantity: 180
                    start: 1504828800
                    type: SUB-MAN
                  - end: 1520380800
                    quantity: 120
                    start: 1504828800
                    type: SUB-LOC
                license_duplicated:
                  - end: 1520380800
                    quantity: 180
                    start: 1504828800
                    type: SUB-MAN
                license_error:
                  - order: "00000464"
                    reason: ""
          schema:
            properties:
              inventory_added:
                items:
                  properties:
                    mac:
                      type: string
                    magic:
                      type: string
                    model:
                      type: string
                    serial:
                      type: string
                    type:
                      type: string
                  required:
                    - serial
                    - model
                    - type
                    - magic
                    - mac
                minItems: 1
                type: array
                uniqueItems: true
              inventory_duplicated:
                items:
                  properties:
                    mac:
                      type: string
                    magic:
                      type: string
                    model:
                      type: string
                    serial:
                      type: string
                    type:
                      type: string
                  required:
                    - serial
                    - model
                    - type
                    - magic
                    - mac
                minItems: 1
                type: array
                uniqueItems: true
              license_added:
                items:
                  properties:
                    end:
                      type: integer
                    quantity:
                      type: integer
                    start:
                      type: integer
                    type:
                      type: string
                  required:
                    - type
                    - start
                    - end
                    - quantity
                minItems: 1
                type: array
                uniqueItems: true
              license_duplicated:
                items:
                  properties:
                    end:
                      type: integer
                    quantity:
                      type: integer
                    start:
                      type: integer
                    type:
                      type: string
                  required:
                    - type
                    - start
                    - end
                    - quantity
                minItems: 1
                type: array
                uniqueItems: true
              license_error:
                items:
                  properties:
                    order:
                      type: string
                    reason:
                      type: string
                  required:
                    - order
                    - reason
                minItems: 1
                type: array
                uniqueItems: true
            required:
              - license_added
              - license_duplicated
              - license_error
              - inventory_added
              - inventory_duplicated
            type: object
      description: OK
    claimMxedge:
      content:
        application/json:
          examples:
            example-1:
              value:
                id: 95ddd29a-6a3c-929e-a431-51a5b09f36a6
                magic: ExNpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
          schema:
            description: ""
            properties:
              id:
                format: uuid
                type: string
              magic:
                type: string
            required:
              - id
              - magic
            type: object
      description: OK
    count:
      content:
        application/json:
          examples:
            example-1:
              value:
                distinct: string
                end: 0
                limit: 0
                percentage: 0
                results:
                  - count: 0
                    property: string
                start: 0
                total: 0
          schema:
            properties:
              distinct:
                type: string
              end:
                type: integer
              limit:
                type: integer
              results:
                items:
                  additionalProperties:
                    type: string
                  properties:
                    count:
                      type: integer
                  required:
                    - count
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              start:
                type: integer
              total:
                type: integer
            required:
              - distinct
              - end
              - limit
              - results
              - start
              - total
            type: object
      description: OK
    getLicenceUsage:
      content:
        application/json:
          examples:
            example-1:
              value:
                org_entitled:
                  SUB-LOC: 30
                  SUB-MAN: 60
                svna_enabled: false
                trial_enabled: false
                usages:
                  SUB-LOC: 30
                  SUB-MAN: 60
                vna_enabled: false
                wvna_enabled: false
          schema:
            properties:
              org_entitled:
                additionalProperties:
                  type: integer
                description: license entitlement for the entire org
                type: object
              svna_enabled:
                description: license entitlement for the Switch device whether SVNA enabled
                type: boolean
              trial_enabled:
                type: boolean
              usages:
                additionalProperties:
                  type: integer
                description: subscriptions and their quantities
                type: object
              vna_enabled:
                description: license entitlement for the AP device whether VNA enabled
                type: boolean
              wvna_enabled:
                description: license entitlement for the Gateway device whether WVNA enabled
                type: boolean
            required:
              - usages
              - org_entitled
              - trial_enabled
              - vna_enabled
              - svna_enabled
              - wvna_enabled
            type: object
      description: OK
  schemas:
    AssetOfInterest:
      description: ""
      properties:
        _checkpoint_prep:
          type: number
        _checkpoint_preparer:
          type: number
        _checkpoint_scan:
          type: number
        _id:
          minLength: 1
          type: string
        _timestamp:
          type: number
        _ttl:
          type: number
        ap_mac:
          minLength: 1
          type: string
        beam:
          type: number
        by:
          minLength: 1
          type: string
        curr_site:
          minLength: 1
          type: string
        device_name:
          type: string
        id:
          minLength: 1
          type: string
        last_seen:
          type: number
        mac:
          minLength: 1
          type: string
        manufacture:
          minLength: 1
          type: string
        map_id:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        rssi:
          type: number
      type: object
      x-examples:
        example-1:
          _checkpoint_prep: 1636148467
          _checkpoint_preparer: 1635888509
          _checkpoint_scan: 1636148467
          _id: 5c5b350eaaaa
          _timestamp: 1643837316
          _ttl: 86349
          ap_mac: 5c5bbbbeaaaa
          beam: 6
          by: asset
          curr_site: 67970e46-4e12-11e6-9188-0242ac11aaaa
          device_name: ""
          id: 3c0c8abc-aaaa-4070-9dd0-b9a18e7ec6fa
          last_seen: 1643837316.760462
          mac: 5c5b350eaaaa
          manufacture: Mist Systems
          map_id: f5d26c7f-1670-4921-a79d-09f887f4aaaa
          name: asset4
          rssi: -30
    Installer_devices:
      properties:
        deviceprofile_name:
          type: string
        for_site:
          readOnly: true
          type: boolean
        height:
          type: number
        map_id:
          format: uuid
          type: string
        name:
          type: string
        orientation:
          type: number
        replacing_mac:
          description: Onlif this is to replace an existing device
          type: string
        role:
          description: optional role for switch / gateway
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        site_name:
          type: string
        x:
          type: number
        y:
          type: number
      required:
        - name
      title: Installer_devices
      type: object
      x-examples:
        example-1:
          deviceprofile_name: string
          for_site: true
          height: 0
          map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
          name: string
          orientation: 0
          site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          site_name: string
          x: 0
          y: 0
    Model_array_string:
      description: Claim Code
      items:
        type: string
      title: Model_array_string
      type: array
      x-examples:
        example-1:
          - string
    Model_ml:
      additionalProperties:
        properties:
          int:
            type: integer
          ple:
            type: integer
        type: object
      title: Model_ml
      type: object
      x-examples:
        example-1:
          property1:
            int: 0
            ple: 0
          property2:
            int: 0
            ple: 0
    Model_object_device_id:
      properties:
        device_id:
          format: uuid
          type: string
      required:
        - device_id
      title: Model_object_device_id
      type: object
    Model_object_email:
      properties:
        email:
          format: email
          type: string
      required:
        - email
      title: Model_object_email
      type: object
      x-examples:
        example-1:
          email: user@example.com
    Model_object_macs_array_string:
      properties:
        macs:
          items:
            type: string
          type: array
      required:
        - macs
      title: Model_object_macs_array_string
      type: object
    Msp:
      properties:
        allow_mist:
          type: boolean
        created_time:
          readOnly: true
          type: integer
        id:
          format: uuid
          type: string
        logo_url:
          description: For advanced tier (uMSPs) only
          type: string
        name:
          type: string
        tier:
          default: base
          enum:
            - base
            - advanced
          type: string
        url:
          description: For advanced tier (uMSPs) only
          type: string
      type: object
      x-examples:
        example-1:
          id: 9520c63a-f7b3-670c-0944-727774d5a722
          logo_url: https://....
          name: MSP
          tier: advanced
          url: https://..
    OrgSiteSleWanResponse:
      description: ""
      properties:
        end:
          type: number
        interval:
          type: integer
        limit:
          type: integer
        page:
          type: integer
        results:
          items:
            properties:
              application-health:
                type: number
              gateway-health:
                type: number
              num_clients:
                type: number
              num_gateways:
                type: number
              site_id:
                format: uuid
                minLength: 1
                type: string
              wan-link-health:
                type: number
            required:
              - site_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        start:
          type: number
        total:
          type: integer
      required:
        - start
        - end
        - interval
        - limit
        - page
        - total
        - results
      type: object
      x-examples:
        example-1:
          end: 1651323600
          interval: 3600
          limit: 1
          page: 2
          results:
            - application-health: 0.8250000047942866
              gateway-health: 1
              num_clients: 65
              num_gateways: 1
              site_id: f5fcbee5-1234-5678-9101-1619ede87879
              wan-link-health: 0.9988471089272484
          start: 1651269600
          total: 4
    OrgSiteSleWifiResponse:
      description: ""
      properties:
        end:
          type: number
        interval:
          type: integer
        limit:
          type: integer
        page:
          type: integer
        results:
          items:
            properties:
              ap-availability:
                type: number
              ap-health:
                type: number
              capacity:
                type: number
              coverage:
                type: number
              num_aps:
                type: number
              num_clients:
                type: number
              roaming:
                type: number
              site_id:
                format: uuid
                minLength: 1
                type: string
              successful-connect:
                type: number
              throughput:
                type: number
              time-to-connect:
                type: number
            required:
              - site_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        start:
          type: number
        total:
          type: integer
      required:
        - start
        - end
        - interval
        - limit
        - page
        - total
        - results
      type: object
      x-examples:
        example-1:
          end: 1651323600
          interval: 3600
          limit: 1
          page: 2
          results:
            - ap-availability: 1
              ap-health: 0.6735632316819553
              capacity: 0.9802900770150502
              coverage: 0.812181632387686
              num_aps: 3
              num_clients: 24
              roaming: 1
              site_id: f5fcbee5-1234-5678-9101-1619ede87879
              successful-connect: 0.9535864983932881
              throughput: 1
              time-to-connect: 0.9791666666666666
          start: 1651269600
          total: 4
    OrgSiteSleWiredResponse:
      description: ""
      properties:
        end:
          type: number
        interval:
          type: integer
        limit:
          type: integer
        page:
          type: integer
        results:
          items:
            properties:
              num_clients:
                type: number
              num_switches:
                type: number
              site_id:
                format: uuid
                minLength: 1
                type: string
              switch-health:
                type: number
              switch-stc:
                type: number
              switch-throughput:
                type: number
            required:
              - site_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        start:
          type: number
        total:
          type: integer
      required:
        - start
        - end
        - interval
        - limit
        - page
        - total
        - results
      type: object
      x-examples:
        example-1:
          end: 1651323600
          interval: 3600
          limit: 1
          page: 2
          results:
            - num_clients: 6
              num_switches: 1
              site_id: f5fcbee5-1234-5678-9101-1619ede87879
              switch-health: 1
              switch-stc: 1
              switch-throughput: 0.9669529756744796
          start: 1651269600
          total: 4
    acct_server:
      description: ""
      properties:
        host:
          description: ip / hostname of RADIUS server
          type: string
        keywrap_enabled:
          type: boolean
        keywrap_format:
          type: string
        keywrap_kek:
          type: string
        keywrap_mack:
          type: string
        port:
          default: 1813
          description: Acct port of RADIUS server
          type: integer
        secret:
          description: secret of RADIUS server
          type: string
      required:
        - host
        - port
        - secret
      type: object
    admin:
      description: Admin
      properties:
        admin_id:
          format: uuid
          readOnly: true
          type: string
        email:
          format: email
          type: string
        enable_two_factor:
          readOnly: true
          type: boolean
        first_name:
          description: for an invite, this is the original first name used
          type: string
        hours:
          default: 24
          description: how long the invite should be valid
          maximum: 168
          minimum: 1
          type: integer
        last_name:
          description: for an invite, this is the original last name used
          type: string
        oauth_google:
          readOnly: true
          type: boolean
        phone:
          description: phone number (numbers only, including country code)
          type: string
        phone2:
          description: secondary phone number (numbers only, including country code)
          type: string
        privileges:
          description: list of privileges the admin has on the MSP / Orgs / OrgGroups
          items:
            $ref: "#/components/schemas/privileges"
          minItems: 1
          readOnly: true
          type: array
          uniqueItems: true
        session_expiry:
          readOnly: true
          type: integer
        tags:
          items:
            type: string
          readOnly: true
          type: array
        two_factor_verified:
          description: two factor status
          readOnly: true
          type: boolean
        via_sso:
          description: an admin alogin via_sso is more restircted. (password and email cannot be changed)
          readOnly: true
          type: string
      required:
        - email
        - first_name
        - last_name
      type: object
      x-examples:
        example-1:
          privileges:
            - role: write
              scope: org
              view: reporting
            - role: write
              scope: site
              site_id: d96e3952-53e8-4266-959a-45acd55f5114
              view: reporting
            - role: write
              scope: sitegroup
              sitegroup_id: 581328b6-e382-f54e-c9dc-999983183a34
              view: reporting
    alarm:
      description: "additional information per alarm type    "
      properties:
        ack_admin_id:
          description: UUID of the admin who acked the alarm
          format: uuid
          type: string
        ack_admin_name:
          description: Name & Email ID of the admin who acked the alarm
          type: string
        acked:
          description: Whether the alarm is acked or not
          type: boolean
        acked_time:
          description: Epoch (seconds) when the alarm was acked
          readOnly: true
          type: integer
        aps:
          description: "additional information: List of MACs of the APs e.g. [“ffeeddccbbaa”, “ffeeddccbbab”]"
          items:
            type: string
          type: array
        bssids:
          description: List of BSSIDs
          items:
            type: string
          type: array
        count:
          description: Number of incident within an alarm window
          readOnly: true
          type: integer
        gateways:
          description: "additional information: List of MACs of the gateways e.g. [“ffeeddccbbaa”, “ffeeddccbbab”]"
          items:
            type: string
          type: array
        group:
          description: Group of the alarm
          type: string
        hostnames:
          description: "additional information: List of Hostnames of the devices (AP/Switch/Gateway)"
          items:
            type: string
          type: array
        id:
          description: UUID of the alarm
          format: uuid
          readOnly: true
          type: string
        last_seen:
          description: Epoch (seconds) of the last incident/alarm within an alarm window
          type: integer
        note:
          description: Text describing the alarm
          type: string
        org_id:
          description: UUID of the org
          format: uuid
          type: string
        severity:
          description: Severity of the alarm
          type: string
        site_id:
          description: UUID of the site
          format: uuid
          readOnly: true
          type: string
        ssids:
          description: List of SSIDs
          items:
            type: string
          type: array
        switches:
          description: "additional information: List of MACs of the switches e.g. [“ffeeddccbbaa”, “ffeeddccbbab”]"
          items:
            type: string
          type: array
        timestamp:
          description: Epoch (seconds) of the first incident/alarm
          readOnly: true
          type: integer
        type:
          description: Key-name of the alarm type
          readOnly: true
          type: string
      required:
        - id
        - timestamp
        - last_seen
        - type
        - group
        - severity
        - count
      type: object
      x-examples:
        example-1:
          value:
            ack_admin_id: 6603c94c-eaf9-4014-9edf-b9f8eed6b183
            ack_admin_name: string
            acked: true
            acked_time: 0
            aps:
              - string
            bssids:
              - string
            count: 0
            gateways:
              - string
            group: string
            hostnames:
              - string
            id: 397f6eca-6276-4993-bfeb-53cbbbba6f08
            last_seen: 0
            note: string
            org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
            severity: string
            site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
            ssids:
              - string
            switches:
              - string
            timestamp: 0
            type: string
    alarmtemplate:
      description: Alarm Template
      properties:
        created_time:
          readOnly: true
          type: number
        delivery:
          $ref: "#/components/schemas/delivery"
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: Some string to name the alarm template
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        rules:
          additionalProperties:
            properties:
              delivery:
                $ref: "#/components/schemas/delivery"
              enabled:
                type: boolean
            type: object
          description: Alarm Rules object to configure the individual alarm keys/types. Property key is the alarm name.
          type: object
      required:
        - delivery
        - rules
      type: object
      x-examples:
        example-1:
          alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          created_time: 0
          delivery:
            additional_emails:
              - string
            enabled: true
            to_org_admins: true
            to_site_admins: true
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          modified_time: 0
          name: string
          org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          rules:
            adhoc_network:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            air_magnet_scan:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            ap_offline:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            bad_cable:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            beacon_flood:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            bssid_spoofing:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            device_down:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            device_restarted:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            dhcp_failure:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            disassociation_flood:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            dot1x_failure:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            eap_dictionary_attack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            eap_failure_injection:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            eap_handshake_flood:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            eap_spoofed_success:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            eapol_logoff_attack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            essid_jack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            excessive_client:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            excessive_eapol_start:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            gateway_down:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            gw_bad_cable:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            gw_negotiation_mismatch:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            honeypot_ssid:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            krack_attack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            missing_vlan:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            monkey_jack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            negotiation_mismatch:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            non_compliant:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            out_of_sequence:
              enabled: true
            psk_failure:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            repeated_auth_failures:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            rogue_ap:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            rogue_client:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            secpolicy_violation:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            ssid_injection:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            switch_down:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            tkip_icv_attack:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            vendor_ie_missing:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            watched_station:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
            zero_ssid_association:
              delivery:
                additional_emails:
                  - string
                enabled: true
                to_org_admins: true
                to_site_admins: true
              enabled: true
    anomaly:
      description: Anomaly
      properties:
        events:
          items:
            readOnly: true
            type: object
          readOnly: true
          type: array
        since:
          readOnly: true
          type: number
        sle_baseline:
          readOnly: true
          type: number
        sle_deviation:
          readOnly: true
          type: number
        timestamp:
          readOnly: true
          type: number
      required:
        - timestamp
        - sle_baseline
        - sle_deviation
        - events
      type: object
      x-examples:
        example-1:
          events:
            - config_update
          since: 1431380400
          sle_baseline: 0.5
          sle_deviation: -0.15
          timestamp: 1431384000
    ap_aeroscout:
      description: Aeroscout AP settings
      properties:
        enabled:
          default: false
          description: whether to enable aeroscout config
          type: boolean
        host:
          description: required if enabled, aeroscout server host
          nullable: true
          type: string
        locate_connected:
          description: whether to enable the feature to allow wireless clients data received and sent to AES server for location calculation
          type: boolean
      type: object
      x-examples:
        example-1:
          enabled: true
          host: aero.pvt.net
    ap_ble:
      description: BLE AP settings
      properties:
        beacon_enabled:
          default: true
          description: whether Mist beacons is enabled
          type: boolean
        beacon_rate:
          description: required if `beacon_rate_mode`==`custom`, 1-10, in number-beacons-per-second
          type: integer
        beacon_rate_mode:
          default: default
          enum:
            - default
            - custom
          type: string
        beam_disabled:
          description: list of AP BLE location beam numbers (1-8) which should be disabled at the AP and not transmit location information (where beam 1 is oriented at the top the AP, growing counter-clock-wise, with 9 being the omni BLE beam)
          items:
            type: integer
          type: array
        eddystone_uid_adv_power:
          description: advertised TX Power, -100 to 20 (dBm), omit this attribute to use default
          maximum: 20
          minimum: -100
          type: integer
        eddystone_uid_beams:
          type: string
        eddystone_uid_enabled:
          description: only if `beacon_enabled`==`false`, Whether Eddystone-UID beacon is enabled
          type: boolean
        eddystone_uid_freq_msec:
          description: Frequency (msec) of data emmit by Eddystone-UID beacon
          type: integer
        eddystone_uid_instance:
          description: Eddystone-UID instance for the device
          type: string
        eddystone_uid_namespace:
          description: Eddystone-UID namespace
          type: string
        eddystone_url_adv_power:
          description: advertised TX Power, -100 to 20 (dBm), omit this attribute to use default
          type: integer
        eddystone_url_beams:
          type: string
        eddystone_url_enabled:
          description: only if `beacon_enabled`==`false`, Whether Eddystone-URL beacon is enabled
          type: boolean
        eddystone_url_freq_msec:
          description: Frequency (msec) of data emmit by Eddystone-UID beacon
          type: integer
        eddystone_url_url:
          description: URL pointed by Eddystone-URL beacon
          type: string
        ibeacon_adv_power:
          description: advertised TX Power, -100 to 20 (dBm), omit this attribute to use default
          maximum: 20
          minimum: -100
          type: integer
        ibeacon_beams:
          type: string
        ibeacon_enabled:
          default: false
          description: can be enabled if `beacon_enabled`==`true`, whether to send iBeacon
          type: boolean
        ibeacon_freq_msec:
          description: Frequency (msec) of data emmit for iBeacon
          type: integer
        ibeacon_major:
          description: Major number for iBeacon
          type: integer
        ibeacon_minor:
          description: Minor number for iBeacon
          type: integer
        ibeacon_uuid:
          description: optional, if not specified, the same UUID as the beacon will be used
          format: uuid
          type: string
        power:
          default: 9
          description: required if `power_mode`==`custom`
          maximum: 10
          minimum: 1
          type: integer
        power_mode:
          description: default / custom
          type: string
      type: object
    ap_client_bridge:
      description: ""
      properties:
        auth:
          properties:
            psk:
              minLength: 1
              type: string
            type:
              default: psk
              description: wpa2-AES/CCMPp is assumed when `type`==`psk`
              enum:
                - open
                - psk
              minLength: 1
              type: string
          type: object
        enabled:
          description: |-
            when acted as client bridge:
            * only 5G radio can be used
            * will not serve as AP on any radios
          type: boolean
        ssid:
          minLength: 1
          type: string
      type: object
      x-examples:
        example-1:
          auth:
            psk: foryoureyesonly
            type: psk
          enabled: true
          ssid: Uplink-SSID
    ap_iot:
      description: IoT AP settings
      properties:
        A1:
          $ref: "#/components/schemas/ap_iot_output"
        A2:
          $ref: "#/components/schemas/ap_iot_output"
        A3:
          $ref: "#/components/schemas/ap_iot_output"
        A4:
          $ref: "#/components/schemas/ap_iot_output"
        DI1:
          $ref: "#/components/schemas/ap_iot_input"
        DI2:
          $ref: "#/components/schemas/ap_iot_input"
        DO:
          $ref: "#/components/schemas/ap_iot_output"
      type: object
    ap_iot_input:
      description: IoT Input AP settings
      properties:
        enabled:
          default: false
          description: whether to enable a pin
          type: boolean
        name:
          description: optional; descriptive pin name
          type: string
        pullup:
          description: the type of pull-up the pin uses (internal, external, none), default none
          enum:
            - internal
            - external
            - none
          type: string
      type: object
    ap_iot_output:
      description: IoT output AP settings
      properties:
        enabled:
          default: false
          description: whether to enable a pin
          type: boolean
        name:
          description: optional; descriptive pin name
          type: string
        output:
          description: whether the pin is configured as an output. DO and A1-A4 can be repurposed by changing
          type: boolean
        pullup:
          description: the type of pull-up the pin uses (internal, external, none), default none
          enum:
            - internal
            - external
            - none
          type: string
        value:
          description: output pin signal level, default 0
          type: integer
      type: object
    ap_ip:
      description: IP AP settings
      properties:
        dns:
          description: if `type`==`static`
          items:
            type: string
          type: array
        dns_suffix:
          description: required if `type`==`static`
          items:
            type: string
          type: array
        gateway:
          description: required if `type`==`static`
          format: ipv4
          type: string
        gateway6:
          format: ipv6
          type: string
        ip:
          description: required if `type`==`static`
          format: ipv4
          type: string
        ip6:
          format: ipv6
          type: string
        mtu:
          type: integer
        netmask:
          description: required if `type`==`static`
          format: ipv4
          type: string
        netmask6:
          format: ipv6
          type: string
        type:
          description: static / dhcp (default)
          enum:
            - static
            - dhcp
          type: string
        type6:
          enum:
            - static
            - dhcp
          type: string
        vlan_id:
          default: 1
          description: management vlan id, default is 1 (untagged)
          type: integer
      type: object
      x-examples:
        example-1:
          dns:
            - string
          dns_suffix:
            - string
          gateway: 192.168.0.1
          gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
          ip: 192.168.0.1
          ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
          mtu: 0
          netmask: 192.168.0.1
          netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
          type: static
          type6: static
          vlan_id: 1
    ap_led:
      description: LED AP settings
      properties:
        brightness:
          type: integer
        enabled:
          type: boolean
      type: object
    ap_mesh:
      description: Mesh AP settings
      properties:
        enabled:
          default: false
          description: whether mesh is enabled on this AP
          type: boolean
        group:
          description: mesh group, base AP(s) will only allow remote AP(s) in the same mesh group to join, 1-9, optional
          nullable: true
          type: integer
        role:
          description: base / remote
          enum:
            - base
            - remote
          type: string
      type: object
    ap_port_config:
      description: ""
      properties:
        additional_vlan_ids:
          description: additional VLAN IDs, only valid in mesh base mode
          items:
            type: integer
          type: array
        disabled:
          type: boolean
        dynamic_vlan:
          description: optional dynamic vlan
          properties:
            default_vlan_id:
              type: integer
            enabled:
              type: boolean
            type:
              type: string
            vlans:
              additionalProperties:
                type: string
              type: object
          type: object
        enable_mac_auth:
          description: ""
          type: boolean
        forwarding:
          default: all
          enum:
            - all
            - limited
            - wxtunnel
            - mxtunnel
            - site_mxedge
          type: string
        mx_tunnel_id:
          description: if `forwarding`==`mxtunnel`, vlan_ids comes from mxtunnel
          format: uuid
          type: string
        mxtunnel_name:
          description: if `forwarding`==`site_mxedge`, vlan_ids comes from site_mxedge (`mxtunnels` under site setting)
          type: string
        port_auth:
          default: none
          description: When doing port auth
          enum:
            - none
            - dot1x
          type: string
        port_vlan_id:
          description: if `forwrding`==`limited`
          type: integer
        radius_config:
          $ref: "#/components/schemas/junos_radius_config"
        radsec:
          $ref: "#/components/schemas/radsec"
        vlan_id:
          description: |-
            optional to specify the vlan id for a tunnel if forwarding is for `wxtunnel`, `mxtunnel` or `site_mxedge`.
            * if vlan_id is not specified then it will use first one in vlan_ids[] of the mxtunnel.
            * if forwarding == site_mxedge, vlan_ids comes from site_mxedge (`mxtunnels` under site setting)
          type: integer
        vland_ids:
          description: if `forwrding`==`limited`
          items:
            type: integer
          type: array
        wxtunnel_id:
          description: if `forwarding`==`wxtunnel`, the port is bridged to the vlan of the session
          type: string
        wxtunnel_remote_id:
          description: if `forwarding`==`wxtunnel`, the port is bridged to the vlan of the session
          type: string
      title: ap_port_config
      type: object
      x-examples:
        example-1:
          disabled: true
          dynamic_vlan:
            default_vlan_id: 1
            enabled: true
            type: string
            vlans:
              property1: string
              property2: string
          enable_mac_auth: true
          forwarding: all
          mx_tunnel_id: string
          mxtunnel_name: string
          port_auth: none
          port_vlan_id: 1
          radius_config:
            acct_interim_interval: 0
            acct_servers:
              - host: string
                port: 0
                secret: string
            auth_servers:
              - host: string
                port: 0
                secret: string
            auth_servers_retries: 0
            auth_servers_timeout: 0
          radsec:
            enabled: true
            server_name: string
            servers:
              - host: string
                port: 0
            use_mxedge: true
          vland_ids:
            - 0
          wxtunnel_id: string
          wxtunnel_remote_id: string
    ap_radio:
      description: Radio AP settings
      properties:
        allow_rrm_disable:
          default: false
          type: boolean
        ant_gain_24:
          description: antenna gain for 2.4G - for models with external antenna only
          type: integer
        ant_gain_5:
          description: antenna gain for 5G - for models with external antenna only
          type: integer
        ant_gain_6:
          description: antenna gain for 6G - for models with external antenna only
          type: integer
        antenna_mode:
          default: default
          enum:
            - default
            - 1x1
            - 2x2
            - 3x3
            - 4x4
          type: string
        band_24:
          $ref: "#/components/schemas/ap_radio_band"
        band_24_usage:
          default: "24"
          description: if `band_24_usage`==`5`, by default, band_5 properties is used, if specific channel/bandwidth/power/... is desired, use the "band_5_on_24_radio"
          enum:
            - "24"
            - "5"
            - auto
            - "6"
          type: string
        band_5:
          $ref: "#/components/schemas/ap_radio_band"
        band_5_on_24_radio:
          $ref: "#/components/schemas/ap_radio_band"
        band_6:
          $ref: "#/components/schemas/ap_radio_band"
        scanning_enabled:
          description: whether scanning radio is enabled
          type: boolean
      type: object
      x-examples:
        example-1:
          ant_gain_24: 0
          ant_gain_5: 0
          ant_gain_6: 0
          band_24:
            allow_rrm_disable: true
            ant_gain: 0
            antenna_mode: default
            bandwidth: 20
            channel: 0
            channels:
              - 0
            disabled: true
            power: 0
            power_max: 0
            power_min: 0
            preamble: short
            usage: "24"
          band_24_usage: "24"
          band_5:
            allow_rrm_disable: true
            ant_gain: 0
            antenna_mode: default
            bandwidth: 20
            channel: 0
            channels:
              - 0
            disabled: true
            power: 0
            power_max: 0
            power_min: 0
            preamble: short
            usage: "24"
          band_5_on_24_radio:
            allow_rrm_disable: true
            ant_gain: 0
            antenna_mode: default
            bandwidth: 20
            channel: 0
            channels:
              - 0
            disabled: true
            power: 0
            power_max: 0
            power_min: 0
            preamble: short
            usage: "24"
          band_6:
            allow_rrm_disable: true
            ant_gain: 0
            antenna_mode: default
            bandwidth: 20
            channel: 0
            channels:
              - 0
            disabled: true
            power: 0
            power_max: 0
            power_min: 0
            preamble: short
            usage: "24"
          scanning_enabled: true
    ap_radio_band:
      description: Radio Band AP settings
      properties:
        allow_rrm_disable:
          type: boolean
        ant_gain:
          nullable: true
          type: integer
        antenna_mode:
          default: default
          enum:
            - default
            - 1x1
            - 2x2
            - 3x3
            - 4x4
          type: string
        bandwidth:
          description: channel width for the band, 20 / 40 / 80 / 160, 80 is only applicable for band_5 and 160 is only for band_6, ignored if channel is 0
          enum:
            - 20
            - 40
            - 80
          type: integer
        channel:
          description: For Device. (primary) channel for the band, 0 means using the Site Setting
          nullable: true
          type: integer
        channels:
          description: For RFTemplates. List of channels, null or empty array means auto
          items:
            type: integer
          nullable: true
          type: array
        disabled:
          description: whether to disable the radio
          type: boolean
        power:
          description: TX power of the radio. For Devices, 0 mean using the Site Setting
          nullable: true
          type: integer
        power_max:
          description: when power=0, max tx power to use, HW-specific values will be used if not set
          nullable: true
          type: integer
        power_min:
          description: when power=0, min tx power to use, HW-specific values will be used if not set
          nullable: true
          type: integer
        preamble:
          default: short
          enum:
            - short
            - long
            - auto
          type: string
        usage:
          default: "24"
          description: for band_24 radio
          enum:
            - "24"
            - "5"
            - rrm
          type: string
      type: object
      x-examples:
        example-1:
          allow_rrm_disable: true
          ant_gain: 0
          antenna_mode: default
          bandwidth: 20
          channel: 0
          channels:
            - 0
          disabled: true
          power: 0
          power_max: 0
          power_min: 0
          preamble: short
          usage: "24"
    ap_switch:
      deprecated: true
      description: for people who want to fully control the vlans (advanced)
      properties:
        enabled:
          default: false
          type: boolean
        eth0:
          $ref: "#/components/schemas/ap_switch_setting"
        eth1:
          $ref: "#/components/schemas/ap_switch_setting"
        eth2:
          $ref: "#/components/schemas/ap_switch_setting"
        eth3:
          $ref: "#/components/schemas/ap_switch_setting"
        module:
          $ref: "#/components/schemas/ap_switch_setting"
        wds:
          $ref: "#/components/schemas/ap_switch_setting"
      type: object
    ap_switch_setting:
      properties:
        additional_vlan_ids:
          description: additional VLAN IDs, only valid in mesh base mode
          items:
            type: integer
          type: array
        enable_vlan:
          type: boolean
        port_vlan_id:
          description: native VLAN id, optional
          oneOf:
            - type: integer
            - type: string
        vlan_ids:
          description: list of VLAN ids this
          items:
            type: integer
          type: array
      title: ap_switch_setting
      type: object
    ap_usb:
      description: USB AP settings
      properties:
        cacert:
          description: only if `type`==`imagotag`
          nullable: true
          type: string
        channel:
          description: |-
            only if `type`==`imagotag`
            channel selection, not needed by default, required for manual channel override only
          type: integer
        enabled:
          description: whether to enable any usb config
          type: boolean
        host:
          description: only if `type`==`imagotag`
          type: string
        imagotag_type:
          default: auto
          description: |-
            only if `type`==`imagotag`
            if native imagotag is enabled, BLE will be disabled automatically
          enum:
            - auto
            - usb
            - native
          type: string
        port:
          default: 0
          description: only if `type`==`imagotag`
          type: integer
        type:
          description: usb config type
          enum:
            - imagotag
            - solum
            - hanshow
          type: string
        verify_cert:
          description: only if `type`==`imagotag`, whether to turn on SSL verification
          type: boolean
        vlan_id:
          default: 1
          description: only if `type`==`solum` or `type`==`hanshow`
          type: integer
      type: object
    apitoken:
      description: API Token
      properties:
        created_by:
          description: for Org token only. email of the token creator / null if creator is deleted
          nullable: true
          type: string
        created_time:
          readOnly: true
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        key:
          readOnly: true
          type: string
        last_used:
          nullable: true
          readOnly: true
          type: integer
        name:
          description: name of the token
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        privileges:
          description: list of privileges the token has on the orgs/sites
          items:
            $ref: "#/components/schemas/privileges"
          minItems: 1
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          id: 864f351a-1377-4ad9-83f8-72f3fe6199ba
          key: 1qkb...QQCL
          name: org_token_xyz
          org_id: bc411cd9-0d1b-4713-94df-eee8617758ed
    aptemplate:
      description: ""
      properties:
        ap_matching:
          properties:
            enabled:
              type: boolean
            rules:
              items:
                properties:
                  match_model:
                    minLength: 1
                    type: string
                  name:
                    minLength: 1
                    type: string
                  port_config:
                    additionalProperties:
                      $ref: "#/components/schemas/ap_port_config"
                    description: The property key is the interface(s) name (e.g. "eth1,eth2")
                    type: object
                type: object
              minItems: 1
              type: array
              uniqueItems: true
          type: object
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        wifi:
          properties:
            cisco_enabled:
              type: boolean
            disable_11k:
              default: false
              type: boolean
            disable_radios_when_power_constrained:
              type: boolean
            enable_arp_spoof:
              type: boolean
            enable_shared_radio_scanning:
              default: false
              type: boolean
            enabled:
              default: true
              type: boolean
            locate_connected:
              default: false
              type: boolean
            locate_unconnected:
              default: false
              type: boolean
            mesh_allow_dfs:
              default: false
              type: boolean
            mesh_enable_crm:
              type: boolean
            mesh_enabled:
              type: boolean
            proxy_arp:
              default: false
              type: boolean
          type: object
      required:
        - ap_matching
      type: object
      x-examples: {}
    asset:
      description: Asset
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        mac:
          description: bluetooth MAC
          type: string
        map_id:
          format: uuid
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: name / label of the device
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        tag_id:
          format: uuid
          type: string
      required:
        - name
        - mac
      type: object
      x-examples:
        example-1:
          created_time: 1594743733
          id: d20f3ae5-xxxx-xxxx-xxxx-a83ef65a4cac
          mac: df8dff060000
          modified_time: 1594743733
          name: My Asset
          org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          site_id: f5fcbee5-xxxx-xxxx-xxxx-1619ede87879
          tag_id: 00000000000000000000000000000000-0-0
    asset_filter:
      description: Asset Filter
      properties:
        ap_mac:
          type: string
        beam:
          type: integer
        created_time:
          readOnly: true
          type: number
        disasbled:
          description: whether the asset filter is disabled
          type: boolean
        eddystone_uid_namespace:
          description: eddystone uid namespace used to filter assets
          example: 2818e3868dec25629ede
          type: string
        eddystone_url:
          description: eddystone url used to filter assets
          example: https://www.abc.com
          type: string
        for_site:
          readOnly: true
          type: boolean
        ibeacon_major:
          description: ibeacon major value used to filter assets
          example: 13
          type: integer
        ibeacon_uuid:
          description: ibeacon uuid used to filter assets
          example: f3f17139-704a-f03a-2786-0400279e37c3
          format: uuid
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        mfg_company_id:
          description: ble manufacturing-specific company-id used to filter assets
          example: 935
          type: integer
        modified_time:
          readOnly: true
          type: number
        name:
          example: Visitor Tags
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        rssi:
          type: integer
        service_uuid:
          description: ble service data uuid used to filter assets
          example: 0000fe6a-0000-1000-8000-0030459b3cfb
          format: uuid
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - name
      type: object
      x-examples:
        example-eddystone:
          created_time: 1603913936
          disabled: false
          eddystone_uid_namespace: 2818e3868dec25629ede
          eddystone_url: https://www.abc.com
          for_site: true
          id: 55234e36-a09a-0000-9538-176adb8d3639
          mfg_company_id: 935
          modified_time: 1603913936
          name: Company Tags
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
        example-ibeacon:
          created_time: 1603913936
          disabled: false
          for_site: true
          ibeacon_major: 13
          ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
          id: 55234e36-a09a-4eda-9538-176adb8d3639
          modified_time: 1603913936
          name: Visitor Tags
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
    auth_server:
      description: Authentication Server
      properties:
        host:
          description: ip / hostname of RADIUS server
          type: string
        keywrap_enabled:
          type: boolean
        keywrap_format:
          type: string
        keywrap_kek:
          type: string
        keywrap_mack:
          type: string
        port:
          default: 1812
          description: Auth port of RADIUS server
          type: integer
        secret:
          description: secret of RADIUS server
          type: string
      required:
        - host
        - port
        - secret
      type: object
    auto_preemption:
      description: schedule to preempt ap’s which are not connected to preferred peer
      properties:
        day_of_week:
          enum:
            - any
            - mon
            - tue
            - wed
            - thu
            - fri
            - sat
            - sun
          type: string
        enabled:
          default: false
          description: whether auto preemption should happen
          type: boolean
        time_of_day:
          default: any
          description: any / HH:MM (24-hour format)
          type: string
      type: object
      x-examples:
        example-1:
          day_of_week: any
          enabled: false
          time_of_day: any
    beacon:
      description: Beacon
      properties:
        created_time:
          readOnly: true
          type: number
        eddystone_instance:
          description: Eddystone-UID instance (6 bytes) in hexstring format
          type: string
        eddystone_namespace:
          description: Eddystone-UID namespace (10 bytes) in hexstring format
          type: string
        eddystone_url:
          description: Eddystone-URL url
          type: string
        for_site:
          readOnly: true
          type: boolean
        ibeacon_major:
          description: bluetooth tag major
          type: integer
        ibeacon_minor:
          description: bluetooth tag minor
          type: integer
        ibeacon_uuid:
          description: bluetooth tag UUID
          format: uuid
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        mac:
          description: optiona, MAC of the beacon, currently used only to identify battery voltage
          type: string
        map_id:
          description: map where the device belongs to
          format: uuid
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: name / label of the device
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        power:
          default: -12
          description: in dBm
          maximum: 100
          minimum: -12
          type: integer
        site_id:
          format: uuid
          readOnly: true
          type: string
        type:
          default: eddystone-uid
          enum:
            - ibeacon
            - eddystone-uid
            - eddystone-url
          type: string
        x:
          description: x in pixel
          type: number
        y:
          description: y in pixel
          type: number
      type: object
      x-examples:
        example-eddystone_uid:
          created_time: 1603914416
          eddystone_instance: 5c5b35000001
          eddystone_namespace: 2818e3868dec25629ede
          id: b4580717-5846-4b14-8c09-2b30fb209419
          mac: c4887201b5a8
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          modified_time: 1603914416
          name: conference room
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          power: 4
          site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
          type: eddystone-uid
          x: 53.5
          y: 173.1
        example-eddystone_url:
          created_time: 1603914416
          eddystone_url: https://www.abc.com
          id: b4580717-5846-4b15-8c09-2b30fb209419
          mac: c4887201b5a8
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          modified_time: 1603914416
          name: conference room
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          power: 4
          site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
          type: eddystone-url
          x: 53.5
          y: 173.1
        example-ibeacon:
          created_time: 1603914416
          ibeacon_major: 1356
          ibeacon_minor: 21
          ibeacon_uuid: 31375aeb-b8d3-1ea6-83bf-a31eb04e1c38
          id: b4580717-5846-4b13-8c09-2b30fb209419
          mac: c4887201b5a8
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          modified_time: 1603914416
          name: conference room
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          power: 4
          site_id: f5fcbee5-fbca-45b3-8bf1-1619ede87879
          type: ibeacon
          x: 53.5
          y: 173.1
    capture:
      anyOf:
        - description: Initiate a Client Packet Capture
          properties:
            ap_mac:
              nullable: true
              type: string
            client_mac:
              description: client mac, required if `type`==`client`; optional otherwise
              nullable: true
              type: string
            duration:
              default: 600
              description: duration of the capture, in seconds
              maximum: 86400
              type: integer
            includes_mcast:
              type: boolean
            max_pkt_len:
              default: 128
              maximum: 2048
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited, default is 1024 for client-capture
              type: integer
            ssid:
              description: optional filter by ssid
              nullable: true
              type: string
            type:
              default: client
              description: client
              enum:
                - client
              type: string
          required:
            - type
        - description: Initiate a packet Capture for New Wireless Client Associations
          properties:
            ap_mac:
              nullable: true
              type: string
            client_mac:
              description: client mac, required if `type`==`client`; optional otherwise
              nullable: true
              type: string
            duration:
              default: 600
              description: duration of the capture, in seconds
              maximum: 86400
              type: integer
            includes_mcast:
              type: boolean
            max_pkt_len:
              default: 128
              maximum: 2048
              type: integer
            num_packets:
              default: 100
              description: number of packets to capture, 0 for unlimited
              type: integer
            ssid:
              description: optional filter by ssid
              nullable: true
              type: string
            type:
              default: new_assoc
              description: new-assoc
              enum:
                - new_assoc
              type: string
          required:
            - type
        - description: Initiate a Wired Packet Capture
          properties:
            ap_mac:
              nullable: true
              type: string
            duration:
              default: 600
              description: duration of the capture, in seconds
              maximum: 86400
              type: integer
            format:
              default: pcap
              description: pcap format
              enum:
                - pcap
                - string
              type: string
            max_pkt_len:
              default: 128
              description: max_len of each packet to capture
              maximum: 2048
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              type: integer
            tcpdump_expression:
              description: tcpdump expression
              type: string
            type:
              default: wired
              description: wired
              enum:
                - wired
              type: string
          required:
            - type
        - description: Initiate a WLAN Packet Capture
          properties:
            ap_mac:
              nullable: true
              type: string
            band:
              default: "24"
              enum:
                - "24"
                - "5"
                - "6"
                - 24,5,6
              type: string
            duration:
              default: 600
              description: duration of the cpture, in seconds
              maximum: 86400
              type: integer
            format:
              default: pcap
              description: pcap format
              enum:
                - pcap
                - string
              type: string
            max_pkt_len:
              default: 128
              description: max_len of each packet to capture
              maximum: 2048
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              type: integer
            ssid:
              type: string
            type:
              default: wlan
              description: wlan
              enum:
                - wlan
              type: string
            wlan_id:
              description: WLAN ID
              format: uuid
              type: string
          required:
            - type
        - description: Initiate a Radiotap Packet Capture and Wired Packet Capture
          properties:
            ap_mac:
              nullable: true
              type: string
            band:
              default: "24"
              description: only used for radiotap
              enum:
                - "24"
                - "5"
                - "6"
                - 24,5,6
              type: string
            client_mac:
              nullable: true
              type: string
            duration:
              default: 600
              description: duration of the cpture, in seconds
              maximum: 86400
              type: integer
            format:
              default: pcap
              enum:
                - pcap
                - stream
              type: string
            max_pkt_len:
              default: 128
              description: max_len of each packet to capture
              maximum: 2048
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              minimum: 0
              type: integer
            radiotap_tcpdump_expression:
              description: tcpdump expression for radiotap interface (802.11 + radio headers)
              type: string
            ssid:
              nullable: true
              type: string
            tcpdump_expression:
              description: tcpdump expression common for wired,radiotap
              type: string
            type:
              default: radiotap,wired
              description: radiotap,wired
              enum:
                - radiotap,wired
              example: radiotap,wired
              type: string
            wired_tcpdump_expression:
              description: tcpdump expression for wired
              type: string
            wireless_tcpdump_expression:
              description: tcpdump expression for radiotap interface (802.11)
              type: string
            wlan_id:
              description: wlan id associated with the respective ssid.
              type: string
          required:
            - type
        - description: Initiate a Radiotap Packet Capture
          properties:
            ap_mac:
              nullable: true
              type: string
            band:
              default: "24"
              enum:
                - "24"
                - "5"
                - "6"
                - 24,5,6
              type: string
            client_mac:
              nullable: true
              type: string
            duration:
              default: 600
              description: duration of the cpture, in seconds
              maximum: 86400
              type: integer
            format:
              default: pcap
              enum:
                - pcap
                - stream
              type: string
            max_pkt_len:
              default: 128
              description: max_len of each packet to capture
              maximum: 2048
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              minimum: 0
              type: integer
            ssid:
              type: string
            tcpdump_expression:
              description: tcpdump expression specific to radiotap
              type: string
            type:
              default: radiotap
              description: radiotap
              enum:
                - radiotap
              example: radiotap
              type: string
            wlan_id:
              description: wlan id associated with the respective ssid.
              type: string
          required:
            - type
        - properties:
            duration:
              default: 600
              description: duration of the cpture, in seconds
              example: 600
              maximum: 86400
              minimum: 0
              type: integer
            format:
              default: pcap
              enum:
                - stream
                - pcap
              example: stream
              type: string
            gateways:
              additionalProperties:
                properties:
                  ports:
                    additionalProperties:
                      properties:
                        tcpdump_expression:
                          description: tcpdump expression per port
                          type: string
                      type: object
                    description: Property key is the port ID
                    type: object
                type: object
              description: List of SSRs. Property key is the SSR MAC
              type: object
            max_pkt_len:
              default: 128
              description: max_len of each packet to capture
              example: 1500
              maximum: 2048
              minimum: 0
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              minimum: 0
              type: integer
            type:
              default: gateway
              enum:
                - gateway
              example: gateway
              type: string
          required:
            - type
        - properties:
            ap_mac:
              description: filter by ap_mac
              nullable: true
              type: string
            band:
              default: "24"
              description: Only Single value allowed
              enum:
                - "24"
                - "5"
                - "6"
              type: string
            channel:
              description: specify the channel value where scan PCAP has to be started
              type: string
            client_mac:
              description: filter by client mac
              type: string
            duration:
              default: 600
              description: duration of the capture, in seconds
              maximum: 86400
              minimum: 0
              type: integer
            format:
              default: pcap
              enum:
                - pcap
                - stream
              type: string
            max_pkt_len:
              default: 512
              description: max_len of each packet to capture
              maximum: 2048
              minimum: 128
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              type: integer
            tcpdump_expression:
              description: tcpdump expression, port specific if specified under ports dict, otherwise applicable across ports if specified at top level of payload. Port specific value overrides top level value when both exist.
              type: string
            type:
              default: scan
              type: string
            width:
              description: specify the bandwidth value with respect to the channel.
              type: string
          required:
            - type
        - properties:
            duration:
              default: 600
              description: duration of the capture, in seconds
              maximum: 86400
              minimum: 0
              type: integer
            format:
              default: pcap
              enum:
                - pcap
                - stream
              type: string
            max_pkt_len:
              default: 512
              description: max_len of each packet to capture
              maximum: 2048
              minimum: 128
              type: integer
            num_packets:
              default: 1024
              description: number of packets to capture, 0 for unlimited
              type: integer
            switches:
              additionalProperties:
                properties:
                  ports:
                    additionalProperties:
                      nullable: true
                      type: object
                    description: Property key is the interface name
                    type: object
                type: object
              description: Property key is the switch mac
              type: object
            tcpdump_expression:
              description: tcpdump expression, port specific if specified under ports dict, otherwise applicable across ports if specified at top level of payload. Port specific value overrides top level value when both exist.
              type: string
            type:
              enum:
                - switch
              type: string
      description: ""
      type: object
    coa_server:
      description: CoA Server
      properties:
        disable_event_timestamp_check:
          type: boolean
        enabled:
          type: boolean
        ip:
          format: ipv4
          type: string
        port:
          type: string
        secret:
          type: string
      required:
        - enabled
        - ip
        - port
        - secret
        - disable_event_timestamp_check
      type: object
    const_device_ap:
      description: ""
      properties:
        ap_type:
          type: string
        band24:
          properties:
            max_clients:
              type: integer
            max_power:
              type: integer
            min_power:
              type: integer
          type: object
        band5:
          properties:
            max_clients:
              type: integer
            max_power:
              type: integer
            min_power:
              type: integer
          type: object
        band6:
          properties:
            max_clients:
              type: integer
            max_power:
              type: integer
            min_power:
              type: integer
          type: object
        ce_dfs_ok:
          type: boolean
        cisco_pace:
          type: boolean
        description:
          type: string
        disallowed_channels:
          additionalProperties:
            additionalProperties:
              items:
                type: integer
              type: array
            description: Property key is the RF band (e.g. "band5")
            type: object
          description: Property key is a list of country codes (e.g. "GB, DE")
          type: object
        display:
          type: string
        extio:
          additionalProperties:
            properties:
              default_dir:
                enum:
                  - IN
                  - OUT
                type: string
              input:
                type: boolean
              output:
                type: boolean
            type: object
          description: Property key is the GPIO port name (e.g. "D0", "A1")
          type: object
        fcc_dfs_ok:
          type: boolean
        has_11ax:
          type: boolean
        has_compass:
          type: boolean
        has_ext_ant:
          type: boolean
        has_extio:
          type: boolean
        has_height:
          type: boolean
        has_module_port:
          type: boolean
        has_poe_out:
          type: boolean
        has_scanning_radio:
          type: boolean
        has_selectable_radio:
          type: boolean
        has_usb:
          type: boolean
        has_vble:
          type: boolean
        has_wifi_band24:
          type: boolean
        has_wifi_band5:
          type: boolean
        has_wifi_band6:
          type: boolean
        max_poe_out:
          type: integer
        max_wlans:
          type: integer
        model:
          type: string
        other_dfs_ok:
          type: boolean
        outdoor:
          type: boolean
        radios:
          additionalProperties:
            type: string
          description: Property key is the radio number (e.g. r0, r1, ...). Property value is the RF band (e.g. "24", "5", ...)
          type: object
        shared_scanning_radio:
          type: boolean
        type:
          enum:
            - ap
          type: string
        unmanaged:
          type: boolean
        vble:
          properties:
            beacon_rate:
              type: integer
            beams:
              type: integer
            power:
              type: integer
          type: object
      title: const_device_ap
      type: object
      x-examples:
        AP43:
          ap_type: aphx
          band24:
            max_clients: 128
            max_power: 19
            min_power: 8
          band5:
            max_clients: 128
            max_power: 17
            min_power: 8
          ce_dfs_ok: true
          description: AP-43
          display: AP43
          extio:
            A1:
              default_dir: IN
              input: true
              output: true
            A2:
              default_dir: IN
              input: true
              output: true
            A3:
              default_dir: IN
              input: true
              output: true
            A4:
              default_dir: IN
              input: true
              output: true
            DI1:
              default_dir: IN
              input: true
              output: false
            DI2:
              default_dir: IN
              input: true
              output: false
            DO:
              default_dir: OUT
              input: true
              output: true
          fcc_dfs_ok: true
          has_11ax: true
          has_compass: false
          has_extio: true
          has_height: true
          has_poe_out: true
          has_scanning_radio: true
          has_selectable_radio: true
          has_usb: true
          has_vble: true
          has_wifi_band24: true
          has_wifi_band5: true
          max_poe_out: 15400
          model: AP43
          other_dfs_ok: true
          radios:
            r0: "5"
            r1: "24"
          type: ap
          vble:
            beacon_rate: 4
            beams: 8
            power: 8
      x-stoplight:
        id: nduszepepd9mb
    const_device_gateway:
      properties:
        defaults:
          additionalProperties:
            description: list of interfaces names (e.g. "ge-0/0/3,ge-1/0/3")
            type: string
          description: Object Key is the interface type name (e.g. "lan_ports", "wan_ports", ...)
          type: object
        description:
          type: string
        experimental:
          default: false
          type: boolean
        fans_pluggable:
          default: true
          type: boolean
        ha_node0_fpc:
          type: integer
        ha_node1_fpc:
          type: integer
        has_bgp:
          default: false
          type: boolean
        has_fxp0:
          default: true
          type: boolean
        has_ha_control:
          default: false
          type: boolean
        has_ha_data:
          default: false
          type: boolean
        has_irb:
          default: false
          type: boolean
        has_poe_out:
          default: true
          type: boolean
        has_snapshot:
          default: true
          type: boolean
        irb_disabled_by_default:
          default: false
          type: boolean
        model:
          type: string
        number_fans:
          type: integer
        oc_device:
          default: false
          type: boolean
        pic:
          additionalProperties:
            description: list of type and number of ports (e.g. "mge*8, ge*16")
            type: string
          description: Object Key is the PIC number
          type: object
        ports:
          description: Object Key is the interface name (e.g. "ge-0/0/1", ...)
          properties:
            display:
              type: string
            pci_address:
              type: string
            speed:
              type: integer
          type: object
        sub_required:
          type: string
        t128_device:
          default: false
          type: boolean
        type:
          enum:
            - gateway
          type: string
      title: const_device_gateway
      type: object
      x-examples:
        SRX320:
          defaults:
            ha_control_port: ge-0/0/1
            ha_data_ports: ge-0/0/2,ge-3/0/2
            ha_fxp0_port: ge-0/0/0
            ha_lan_ports: ge-0/0/4,ge-3/0/4
            ha_wan_ports: ge-0/0/3,ge-3/0/3
            lan_ports: ge-0/0/1-6
            lte_wan_ports: cl-1/0/0
            wan_ports: ge-0/0/0,ge-0/0/7
          description: Juniper SRX320 Series
          fans_pluggable: false
          ha_node1_fpc: 3
          has_bgp: true
          has_fxp0: false
          has_irb: true
          model: SRX320
          number_fans: 1
          oc_device: true
          pic:
            "0": ge*6, sfp*2
          sub_required: wan1
          type: gateway
        SSR120:
          defaults:
            lan_ports: ge-0/0/3
            wan_ports: ge-0/0/0,ge-0/0/1,ge-0/0/2
          description: 128T SSR small branch router
          ha_node1_fpc: 1
          model: SSR120
          ports:
            ge-0/0/0:
              display: ge-0/0/0
              pci_address: 0000:04:00.1
              speed: 1000
            ge-0/0/1:
              display: ge-0/0/1
              pci_address: 0000:04:00.0
              speed: 1000
            ge-0/0/2:
              display: ge-0/0/2
              pci_address: 0000:03:00.1
              speed: 1000
            ge-0/0/3:
              display: ge-0/0/3
              pci_address: 0000:03:00.0
              speed: 1000
            ge-0/0/4:
              display: ge-0/0/4
              pci_address: 0000:02:00.1
              speed: 1000
            ge-0/0/5:
              display: ge-0/0/5
              pci_address: 0000:02:00.0
              speed: 1000
          sub_required: wan
          t128_device: true
          type: gateway
      x-stoplight:
        id: qhnk0441he1ye
    const_device_switch:
      properties:
        alias:
          type: string
        defaults:
          properties:
            _ports:
              type: string
          type: object
        description:
          type: string
        display:
          type: string
        evolved_os:
          default: false
          type: boolean
        evpn_ri_type:
          type: string
        experimental:
          default: false
          type: boolean
        fans_pluggable:
          default: false
          type: boolean
        has_bgp:
          default: false
          type: boolean
        has_ets:
          default: false
          type: boolean
        has_evpn:
          default: false
          type: boolean
        has_irb:
          default: false
          type: boolean
        has_poe_out:
          default: false
          type: boolean
        has_snapshot:
          default: true
          type: boolean
        has_vc:
          default: true
          type: boolean
        model:
          type: string
        modular:
          default: false
          type: boolean
        no_shaping_rate:
          default: false
          type: boolean
        number_fans:
          type: integer
        oc_device:
          default: false
          type: boolean
        oob_interface:
          type: string
        packet_action_drop_only:
          default: false
          type: boolean
        pic:
          additionalProperties:
            description: list of type and number of ports (e.g. "mge*8, ge*16")
            type: string
          description: Object Key is the PIC number
          type: object
        sub_required:
          type: string
        type:
          enum:
            - switch
          type: string
      title: const_device_switch
      type: object
      x-examples:
        EX4650-48Y:
          alias: EX4650-48Y-8C
          defaults:
            _ports: et-0/0/0-47, ge-0/0/0-47, xe-0/0/0-47, et-0/0/48-55, xe-0/0/48-55:4
          description: Juniper EX4650 Series
          has_bgp: true
          has_evpn: true
          has_irb: true
          has_snapshot: false
          model: EX4650-48Y
          oc_device: true
          pic:
            "0": sfp28*48, qsfp28*8
          sub_required: ex48
          type: switch
      x-stoplight:
        id: lzuvzrifxqruk
    const_device_unknown:
      properties:
        ap_type:
          type: string
        description:
          type: string
        display:
          type: string
        has_extio:
          type: boolean
        has_vble:
          type: boolean
        has_wifi_band24:
          type: boolean
        has_wifi_band5:
          type: boolean
        model:
          type: string
        unmanaged:
          type: boolean
      type: object
      x-examples:
        Example 1:
          ap_type: unknown
          description: "?"
          display: "?"
          has_extio: false
          has_vble: false
          has_wifi_band24: false
          has_wifi_band5: false
          model: unknown
          unmanaged: true
    curd_ui_settings:
      description: CURD UI Settings
      properties:
        created_time:
          readOnly: true
          type: number
        defaultScopeId:
          type: string
        defaultScopeType:
          type: string
        defaultTimeRange:
          properties:
            end:
              type: integer
            endDate:
              type: string
            interval:
              type: string
            name:
              type: string
            shortName:
              type: string
            start:
              type: integer
            usePreset:
              type: boolean
          type: object
        description:
          type: string
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        isCustomDataboard:
          type: boolean
        isScopeLinked:
          type: boolean
        isTimeRangeLinked:
          type: boolean
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        purpose:
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        tiles:
          items:
            properties:
              chartBand:
                type: string
              chartColor:
                type: string
              chartDirection:
                type: string
              chartRankBy:
                type: string
              chartType:
                type: string
              colspan:
                type: integer
              column:
                type: integer
              hideEmptyRows:
                type: boolean
              id:
                type: string
              metric:
                properties:
                  apiName:
                    type: string
                type: object
              name:
                type: string
              row:
                type: integer
              rowspan:
                type: integer
              scopeId:
                type: string
              scopeType:
                type: string
              sortedColumns: {}
              timeRange:
                properties:
                  end:
                    type: number
                  endDate:
                    type: string
                  interval:
                    type: string
                  name:
                    type: string
                  shortName:
                    type: string
                  start:
                    type: integer
                  usePreset:
                    type: boolean
                type: object
              trendType:
                type: string
              vizType:
                type: string
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      required:
        - description
        - id
        - for_site
        - site_id
        - org_id
        - created_time
        - modified_time
        - purpose
      type: object
      x-examples:
        example-1:
          created_time: 1508823803
          defaultScopeId: 67970e46-4e12-11e6-9188-0242ad112847
          defaultScopeType: site
          defaultTimeRange:
            end: 1508828400
            endDate: 10/23/2017
            interval: 1d
            name: This Week
            shortName: thisWeek
            start: 1508655600
            usePreset: true
          description: Description of the databoard
          for_site: true
          id: 3bdcc7e8-c04d-4512-b4fc-093da9057eb0
          isCustomDataboard: true
          isScopeLinked: true
          isTimeRangeLinked: true
          modified_time: 1508823803
          name: New Databoard
          org_id: 6748cfa6-4e12-11e6-9188-0242asfad8365
          purpose: databoard
          site_id: 67970e46-4e12-11e6-9188-0242ad112847
          tiles:
            chartBand: 2.4 ghz
            chartColor: "#00B4AD"
            chartDirection: tx + rx
            chartRankBy: ""
            chartType: timeSeries
            colspan: 5
            column: 1
            hideEmptyRows: true
            id: 7a9ab38c-cfc3-483d-b51a-0aec571fadc0-j956nurl
            metric:
              apiName: client-dhcp-latency
            name: New Analysis
            row: 1
            rowspan: 2
            scopeId: e0c767834b4c
            scopeType: client
            timeRange:
              end: 1508823743
              endDate: 10/23/2017
              interval: 1d
              name: Past 7 Days
              shortName: 7d
              start: 1508223600
              usePreset: true
            trendType: line
            vizType: averageTimeSeriesChart
    delivery:
      description: Delivery object to configure the alarm delivery
      properties:
        additional_emails:
          description: List of additional email string to deliver the alarms via emails
          items:
            type: string
          type: array
        enabled:
          description: Whether to enable the alarm delivery via emails or not
          type: boolean
        to_org_admins:
          description: Whether to deliver the alarms via emails to Org admins or not
          type: boolean
        to_site_admins:
          description: Whether to deliver the alarms via emails to Site admins or not
          type: boolean
      required:
        - enabled
      type: object
      x-examples:
        example-1:
          additional_emails:
            - user@email
          enabled: true
          to_org_admins: true
          to_site_admins: true
    device_ap:
      description: AP
      properties:
        aeroscout:
          $ref: "#/components/schemas/ap_aeroscout"
        ble_config:
          $ref: "#/components/schemas/ap_ble"
        centrak:
          properties:
            enabled:
              type: boolean
          type: object
        client_bridge:
          $ref: "#/components/schemas/ap_client_bridge"
        created_time:
          readOnly: true
          type: number
        deviceprofile_id:
          format: uuid
          nullable: true
          type: string
        disable_eth1:
          default: false
          description: whether to disable eth1 port
          type: boolean
        disable_eth2:
          default: false
          description: whether to disable eth2 port
          type: boolean
        disable_eth3:
          default: false
          description: whether to disable eth3 port
          type: boolean
        disable_module:
          default: false
          description: whether to disable module port
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        height:
          description: height, in meters, optional
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        image1_url:
          nullable: true
          type: string
        image2_url:
          nullable: true
          type: string
        image3_url:
          nullable: true
          type: string
        iot_config:
          $ref: "#/components/schemas/ap_iot"
        ip_config:
          $ref: "#/components/schemas/ap_ip"
        led:
          $ref: "#/components/schemas/ap_led"
        locked:
          description: whether this map is considered locked down
          type: boolean
        map_id:
          description: map where the device belongs to
          format: uuid
          type: string
        mesh:
          $ref: "#/components/schemas/ap_mesh"
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        notes:
          description: any notes about this AP
          type: string
        ntp_servers:
          items:
            type: string
          type: array
        org_id:
          format: uuid
          readOnly: true
          type: string
        orientation:
          description: orientation, 0-359, in degrees, up is 0, right is 90.
          maximum: 359
          minimum: 0
          type: number
        poe_passthrough:
          default: false
          description: whether to enable power out through module port (for APH) or eth1 (for APL/BT11)
          type: boolean
        port_config:
          additionalProperties:
            $ref: "#/components/schemas/ap_port_config"
          description: |-
            eth0 is allowed in mesh relay mode, otherwise eth0 is not allowed here. 
            The property key is the interface(s) name (e.g. "eth1" or"eth1,eth2")
          type: object
        pwr_config:
          description: power related configs
          properties:
            base:
              default: 0
              description: additional power to request during negotiating with PSE over PoE, in mW
              type: number
            prefer_usb_over_wifi:
              default: false
              description: whether to enable power out to peripheral, meanwhile will reduce power to wifi (only for AP45 at power mode)
              type: boolean
          type: object
        radio_config:
          $ref: "#/components/schemas/ap_radio"
        site_id:
          format: uuid
          readOnly: true
          type: string
        uplink_port_config:
          properties:
            dot1x:
              default: false
              description: Whether to do 802.1x against uplink switch. When enaled, AP cert will be used to do EAP-TLS and the Org's CA Cert has to be provisioned at the switch
              type: boolean
          type: object
        usb_config:
          $ref: "#/components/schemas/ap_usb"
        vars:
          description: a dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
          type: object
        x:
          description: x in pixel
          type: number
        y:
          description: y in pixel
          type: number
      type: object
      x-examples:
        device_ap:
          aeroscout:
            enabled: false
            host: string
            locate_connected: true
          ble_config:
            beacon_enabled: true
            beacon_rate: 0
            beacon_rate_mode: default
            beam_disabled:
              - 0
            eddystone_uid_adv_power: -100
            eddystone_uid_beams: string
            eddystone_uid_enabled: true
            eddystone_uid_freq_msec: 0
            eddystone_uid_instance: string
            eddystone_uid_namespace: string
            eddystone_url_adv_power: 0
            eddystone_url_beams: string
            eddystone_url_enabled: true
            eddystone_url_freq_msec: 0
            eddystone_url_url: string
            ibeacon_adv_power: -100
            ibeacon_beams: string
            ibeacon_enabled: false
            ibeacon_freq_msec: 0
            ibeacon_major: 0
            ibeacon_minor: 0
            ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
            power: 9
            power_mode: string
          created_time: 0
          deviceprofile_id: 366a0f23-8d77-404c-8908-b2e629ba0782
          disable_eth1: false
          disable_eth2: false
          disable_eth3: false
          disable_module: false
          for_site: true
          height: 0
          id: 450f6eca-6276-4996-bfeb-53cbbbba6f08
          image1_url: string
          image2_url: string
          image3_url: string
          iot_config:
            A1:
              enabled: false
              name: string
              output: true
              pullup: internal
              value: 0
            A2:
              enabled: false
              name: string
              output: true
              pullup: internal
              value: 0
            A3:
              enabled: false
              name: string
              output: true
              pullup: internal
              value: 0
            A4:
              enabled: false
              name: string
              output: true
              pullup: internal
              value: 0
            DI1:
              enabled: false
              name: string
              pullup: internal
            DI2:
              enabled: false
              name: string
              pullup: internal
            DO:
              enabled: false
              name: string
              output: true
              pullup: internal
              value: 0
          ip_config:
            dns:
              - string
            dns_suffix:
              - string
            gateway: 192.168.0.1
            gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            ip: 192.168.0.1
            ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            mtu: 0
            netmask: 192.168.0.1
            netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            type: static
            type6: static
            vlan_id: 1
          led:
            brightness: 0
            enabled: true
          locked: false
          map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
          mesh:
            enabled: false
            group: 0
            role: base
          modified_time: 0
          name: string
          notes: string
          ntp_servers:
            - string
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          orientation: 0
          orientation_overwrite: true
          poe_passthrough: false
          port_config:
            property1:
              disabled: true
              dynamic_vlan:
                default_vlan_id: 0
                enabled: true
                type: string
                vlans:
                  property1: string
                  property2: string
              enable_mac_auth: true
              forwarding: all
              mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
              mxtunnel_name: string
              port_auth: none
              port_vlan_id: 0
              radius_config:
                acct_interim_interval: 0
                acct_servers:
                  - host: string
                    port: 1813
                    secret: string
                auth_servers:
                  - host: string
                    port: 1812
                    secret: string
                auth_servers_retries: 3
                auth_servers_timeout: 5
                coa_enabled: false
                coa_port: 3799
                network: string
                source_ip: string
              radsec:
                enabled: true
                idle_timeout: 0
                server_name: string
                servers:
                  - host: string
                    port: 0
                use_mxedge: true
              vlan_id: 0
              vland_ids:
                - 0
              wxtunnel_id: string
              wxtunnel_remote_id: string
            property2:
              disabled: true
              dynamic_vlan:
                default_vlan_id: 0
                enabled: true
                type: string
                vlans:
                  property1: string
                  property2: string
              enable_mac_auth: true
              forwarding: all
              mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
              mxtunnel_name: string
              port_auth: none
              port_vlan_id: 0
              radius_config:
                acct_interim_interval: 0
                acct_servers:
                  - host: string
                    port: 1813
                    secret: string
                auth_servers:
                  - host: string
                    port: 1812
                    secret: string
                auth_servers_retries: 3
                auth_servers_timeout: 5
                coa_enabled: false
                coa_port: 3799
                network: string
                source_ip: string
              radsec:
                enabled: true
                idle_timeout: 0
                server_name: string
                servers:
                  - host: string
                    port: 0
                use_mxedge: true
              vlan_id: 0
              vland_ids:
                - 0
              wxtunnel_id: string
              wxtunnel_remote_id: string
          pwr_config:
            base: 0
          radio_config:
            ant_gain_24: 0
            ant_gain_5: 0
            ant_gain_6: 0
            band_24:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_24_usage: "24"
            band_5:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_5_on_24_radio:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_6:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            scanning_enabled: true
          site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          switch_config:
            enabled: false
            eth0:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
            eth1:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
            eth2:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
            eth3:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
            module:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
            wds:
              enable_vlan: true
              port_vlan_id: 0
              vlan_ids:
                - 0
          usb_config:
            cacert: string
            channel: 0
            enabled: true
            host: string
            port: 0
            type: imagotag
            verify_cert: true
          vars: {}
          x: 0
          y: 0
    device_gateway:
      description: device gateway
      properties:
        additional_config_cmds:
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: number
        deviceprofile_id:
          format: uuid
          type: string
        dhcpd_config:
          $ref: "#/components/schemas/junos_dhcpd"
        extra_routes:
          additionalProperties:
            properties:
              via:
                type: string
            type: object
          description: The property key is the destination
          minProperties: 0
          type: object
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        image1_url:
          type: string
        image2_url:
          type: string
        image3_url:
          type: string
        ip_config:
          $ref: "#/components/schemas/junos_ip_config"
        managed:
          type: boolean
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        name:
          type: string
        networks:
          additionalProperties:
            properties:
              vlan_id:
                type: integer
            type: object
          description: The property key is the network name or a CIDR
          minProperties: 0
          type: object
        ntp_servers:
          items:
            type: string
          type: array
        oob_ip_config:
          $ref: "#/components/schemas/junos_oob_ip_config"
        org_id:
          format: uuid
          readOnly: true
          type: string
        port_config:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_config_gateway"
          description: The property key is the port name or range (e.g. "ge-0/0/0-10")
          type: object
        port_mirroring:
          properties:
            port_mirror:
              properties:
                family_type:
                  type: string
                ingress_port_ids:
                  items:
                    example: ge-0/0/3
                    type: string
                  type: array
                output_port_id:
                  example: ge-0/0/5
                  type: string
                rate:
                  type: integer
                run_length:
                  minimum: 0
                  type: integer
              type: object
          type: object
        site_id:
          format: uuid
          readOnly: true
          type: string
        vars:
          minProperties: 0
          type: object
      type: object
      x-examples:
        device-gateway-response:
          additional_config_cmds:
            - set snmp community public
          created_time: 0
          deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          dhcpd_config:
            corp:
              dns_servers:
                - 8.8.8.8
                - 4.4.4.4
              dns_suffix:
                - .mist.local
                - .mist.com
              fixed_bindings:
                5684dae9ac8b:
                  ip: 192.168.70.35
                  name: John
              gateway: 192.168.70.1
              ip_end: 192.168.70.200
              ip_start: 192.168.70.100
              type: local
            enabled: true
          extra_routes:
            0.0.0.0/0:
              via: 10.2.1.1
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          image1_url: https://url/to/image.png
          ip_configs:
            corp:
              ip: 192.168.10.1
              type: static
          managed: false
          modified_time: 0
          name: corp-a135
          networks: {}
          ntp_servers:
            - pool.ntp.org
            - time.google.com
          oob_ip_config:
            ip: 192.168.50.3
            netmask: 255.255.255.0
            type: static
          org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          port_config:
            cl-0/0/1:
              ip_config:
                type: pppoe
              usage: wan
              wan_config:
                backup_only: true
            ge-0/0/0:
              ip_config:
                type: dhcp
              usage: wan
            "ge-0/0/0,ge-7/0/0":
              clustered: true
              ip_config: {}
              reth_idx: 3
              usage: wan
            ge-0/0/1-5:
              usage: lan
            ge-0/0/7:
              ip_config:
                type: static
              usage: wan
          port_forward:
            remote-ssh:
              ip_port: 10.2.5.3
              ip_range: 10.2.5.1/32-10.2.5.20/32
              protocol: tcp
          site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          vars:
            RADIUS_IP1: 172.31.2.5
            RADIUS_SECRET: 11s64632d
    device_other:
      properties:
        created_time:
          type: integer
        device_mac:
          type: string
        id:
          type: string
        mac:
          type: string
        model:
          type: string
        modified_time:
          type: integer
        name:
          type: string
        org_id:
          type: string
        serial:
          type: string
        site_id:
          type: string
        vendor:
          type: string
      type: object
      x-examples:
        Example 1:
          created_time: 1676983730
          device_mac: "001122334455"
          id: ae9dee49-69e7-4710-a114-5b827a777738
          mac: 5c5b35000018
          model: AP41
          modified_time: 1676983730
          name: hallway
          org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
          serial: FXLH2015150025
          site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
          vendor: cradlepoint
    device_search_ap:
      description: ""
      properties:
        band_24_bandwith:
          description: Bandwith of band_24
          type: string
        band_24_channel:
          description: Channel of band_24
          type: integer
        band_24_power:
          type: integer
        band_5_bandwith:
          description: Bandwith of band_5
          type: string
        band_5_channel:
          description: Channel of band_5
          type: integer
        band_5_power:
          type: integer
        band_6_bandwith:
          type: string
        band_6_channel:
          description: Channel of band_6
          type: integer
        band_6_power:
          type: integer
        eth0_port_speed:
          description: Port speed of eth0
          type: integer
        ext_ip:
          type: string
        hostname:
          description: partial / full hostname
          items:
            type: string
          type: array
        ip:
          description: ip address
          type: string
        lldp_mgmt_addr:
          description: LLDP management ip address
          type: string
        lldp_port_desc:
          type: string
        lldp_port_id:
          description: LLDP port id
          type: string
        lldp_power_allocated:
          type: integer
        lldp_power_draw:
          type: integer
        lldp_system_desc:
          description: LLDP system description
          type: string
        lldp_system_name:
          description: LLDP system name
          type: string
        mac:
          description: device model
          type: string
        model:
          type: string
        mxedge_id:
          description: Mist Edge id, if AP is connecting to a Mist Edge
          type: string
        mxtunnel_status:
          description: MxTunnel status
          type: string
        org_id:
          type: string
        power_constrained:
          type: boolean
        site_id:
          description: site id
          type: string
        sku:
          type: string
        timestamp:
          type: number
        uptime:
          type: integer
        version:
          description: version
          type: string
      type: object
      x-examples:
        example-1:
          band_24_channel: 6
          band_24_power: 18
          band_5_channel: 44
          band_5_power: 17
          band_6_channel: 5
          band_6_power: 10
          eth0_port_speed: 1000
          ext_ip: 125.228.68.139
          hostname:
            - AP41-STB-3E5299-WH-2001
            - AP41-STB-3E5299-WH-50
            - AP41-STB-3E5299
            - 5c5b353e5299
          ip: 10.2.16.205
          lldp_mgmt_addr: 10.2.10.139
          lldp_port_desc: GigabitEthernet1/0/1
          lldp_port_id: Gi1/0/1
          lldp_power_allocated: 19500
          lldp_power_draw: 19500
          lldp_system_desc: |-
            Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 15.2(1)E1, RELEASE SOFTWARE (fc2)
            Technical Support: http://www.cisco.com/techsupport
            Copyright (c) 1986-2013 by Cisco Systems, Inc.
            Compiled Fri 22-Nov-13 07:10 by prod_rel_team
          lldp_system_name: ME-DC-1-ACC-SW
          mac: 5c5b353e5299
          model: AP41
          mxedge_id: 00000000-0000-0000-1000-43a81f238391
          mxtunnel_status: down
          org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
          site_id: a8178443-ecb5-461c-b854-f16627619ab3
          sku: AP41-US
          timestamp: 1596588619.007
          uptime: 85280
          version: 0.7.20216
    device_search_switch_gateway:
      properties:
        ext_ip:
          type: string
        hostname:
          items:
            type: string
          type: array
        ip:
          type: string
        last_hostname:
          type: string
        mac:
          type: string
        model:
          type: string
        num_members:
          type: integer
        org_id:
          type: string
        site_id:
          type: string
        timestamp:
          type: number
        type:
          type: string
        uptime:
          type: integer
        version:
          type: string
      type: object
      x-examples:
        example-1:
          ext_ip: 0.0.0.0
          hostname:
            - 3c8c939485ad
            - ludi-ex2300
          ip: 192.168.86.22
          last_hostname: 3c8c939485ad
          mac: 3c8c939485ad
          model: ex2300-c-12p
          num_members: 1
          org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
          site_id: 8721e817-96ee-4e34-b6b6-a80cc01642a6
          timestamp: 1661273225.321
          type: switch
          uptime: 2380356
          version: 21.4R1.12
    device_switch:
      description: |-
        Switch Configuration
        You can configure `port_usages` and `networks` settings at the device level, but most of the time it's better use the Site Setting to achieve better consistency and be able to re-use the same settings across switches entries defined here will "replace" those defined in Site Setting/Network Template
      properties:
        acl_policies:
          items:
            $ref: "#/components/schemas/junos_acl_policies"
          type: array
        acl_tags:
          additionalProperties:
            $ref: "#/components/schemas/junos_acl_tags"
          description: ACL Tags to identify traffic source or destination. Key name is the tag name
          properties:
            any:
              description: implicit, cannot override
              properties:
                type:
                  default: a
                  type: string
              type: object
          type: object
        additional_config_cmds:
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: number
        deviceprofile_id:
          format: uuid
          type: string
        dhcp_config:
          $ref: "#/components/schemas/junos_dhcpd"
        dhcp_snooping:
          $ref: "#/components/schemas/junos_dhcp_snooping"
        disable_auto_config:
          default: false
          description: for a claimed switch, we control the configs by default. This option (disables the behavior)
          type: boolean
        dns_servers:
          description: Global dns settings. To keep compatibility, dns settings in `ip_config` and `oob_ip_config` will overwrite this setting
          items:
            type: string
          type: array
        dns_suffix:
          description: Global dns settings. To keep compatibility, dns settings in `ip_config` and `oob_ip_config` will overwrite this setting
          items:
            type: string
          type: array
        evpn_config:
          $ref: "#/components/schemas/junos_evpn_config"
        extra_routes:
          additionalProperties:
            properties:
              via:
                description: next-hop IP Address
                type: string
            type: object
          description: The property key is the network name or a CIDR
          type: object
        id:
          format: uuid
          readOnly: true
          type: string
        image1_url:
          nullable: true
          type: string
        image2_url:
          nullable: true
          type: string
        image3_url:
          nullable: true
          type: string
        ip_config:
          $ref: "#/components/schemas/junos_ip_config"
        managed:
          default: false
          description: for an adopted switch, we don’t overwrite their existing configs automatically
          type: boolean
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        networks:
          $ref: "#/components/schemas/junos_networks"
        notes:
          type: string
        ntp_servers:
          description: list of NTP servers specific to this device. By default, those in Site Settings will be used
          items:
            type: string
          type: array
        oob_ip_config:
          $ref: "#/components/schemas/junos_oob_ip_config"
        org_id:
          format: uuid
          readOnly: true
          type: string
        ospf_config:
          $ref: "#/components/schemas/junos_ospf_config"
        other_ip_configs:
          additionalProperties:
            $ref: "#/components/schemas/junos_other_ip_configs"
          description: The property key is the network name
          type: object
        port_config:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_config"
          description: The property key is the port name or range (e.g. "ge-0/0/0-10")
          type: object
        port_mirroring:
          properties:
            port_mirror:
              $ref: "#/components/schemas/junos_port_mirror"
          type: object
        port_usages:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_usages"
          description: The property key is the port profile name
          properties:
            dynamic:
              $ref: "#/components/schemas/junos_port_usages_dynamic"
          type: object
        radius_config:
          $ref: "#/components/schemas/junos_radius_config"
        role:
          default: access
          enum:
            - access
            - aggregation
          type: string
        router_id:
          description: used for OSPF / BGP / EVPN
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        switch_mgmt:
          properties:
            config_revert_timer:
              default: 10
              description: rollback timer for commit confirmed
              maximum: 30
              minimum: 1
              type: integer
            protect_re:
              description: |-
                restrict inbound-traffic to host
                when enabled, all traffic that is not essential to our operation will be dropped 
                e.g. ntp / dns / traffic to mist will be allowed by default, if dhcpd is enabled, we'll make sure it works
              properties:
                allowed_services:
                  description: optionally, services we'll allow
                  items:
                    example: e
                    type: string
                  type: array
                custom:
                  items:
                    properties:
                      port_range:
                        default: "0"
                        example: 80,1035-1040
                        type: string
                      protocol:
                        default: any
                        enum:
                          - tcp
                          - udp
                          - icmp
                          - any
                        example: tcp
                        type: string
                      subnets:
                        items:
                          example: 10.1.2.0/24
                          type: string
                        type: array
                    type: object
                  type: array
                enabled:
                  type: boolean
                trusted_hosts:
                  description: optionally, host/subnets we'll allow traffic to/from
                  items:
                    example: 10.242.3.0/24
                    type: string
                  type: array
              type: object
            root_password:
              type: string
          type: object
        vars:
          description: a dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
          type: object
        virtual_chassis:
          description: required for preprovisioned Virtual Chassis
          properties:
            members:
              description: list of Virtual Chassis mem
              items:
                properties:
                  mac:
                    description: fpc0, same as the mac of device_id
                    example: aff827549235
                    type: string
                  vc_role:
                    description: Both vc_role master and backup will be matched to routing-engine role in Junos preprovisioned VC config
                    enum:
                      - master
                      - linecard
                      - backup
                    type: string
                type: object
              type: array
            preprovisioned:
              default: false
              description: to configure whether the VC is preprovisioned or nonprovisioned
              type: boolean
          type: object
        vrf_config:
          $ref: "#/components/schemas/junos_vrf_config"
        vrrp_config:
          $ref: "#/components/schemas/junos_vrrp_config"
      type: object
      x-examples:
        device-switch-settings:
          additional_config_cmds:
            - set snmp community public
          deviceprofile_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          disable_auto_config: false
          extra_routes:
            - dest: 172.16.3.0/24
              via: 10.2.1.1
            - dest: it_mgmt
              via: 10.2.1.1
          image1_url: https://url/to/image.png
          ip_config:
            dns:
              - 8.8.8.8
              - 4.4.4.4
            dns_suffix:
              - .mist.local
              - .mist.com
            gateway: 10.2.1.254
            ip: 10.2.1.10
            netmask: 255.255.255.0
            network: default
            type: static
          managed: false
          name: corp-a135
          notes: slightly off center
          ntp_servers:
            - pool.ntp.org
            - time.google.com
          oob_ip_config: {}
          ospf:
            "0":
              networks:
                - corp
                - iot
              nssa: false
              stub: false
          other_ip_configs:
            guest:
              ip: 10.3.3.1
              netmask: 255.255.255.0
              type: static
          port_config:
            "*":
              usage: default
            ge-0/0/0:
              aggregated: true
              description: to dist-sw-01
              usage: uplink
            ge-0/0/1:
              dynamic_usage: dynamic
              usage: default
            "ge-0/0/8-16,ge-1/0/0-47":
              usage: ap
          radius_config:
            acct_interim_interval: 0
            acct_servers:
              - host: 1.2.3.4
                port: 1812
                secret: testing123
            auth_servers:
              - host: 1.2.3.4
                port: 1812
                secret: testing123
              - host: radius.internal
                port: 1812
                secret: testing123
            auth_servers_retries: 3
            auth_servers_timeout: 5
          role: access
          router_id: 10.2.1.10
          vars:
            RADIUS_IP1: 172.31.2.5
            RADIUS_SECRET: 11s64632d
    device_switch_vc:
      description: Virtual Chassis
      properties:
        member:
          description: Only if `op`==`renumber`
          type: integer
        members:
          items:
            properties:
              mac:
                description: same as the mac of device_id. Required if `op`==`add`
                type: string
              member:
                description: Required if `op`==`remove`. Optional if `op`==`add`
                type: integer
              vc_ports:
                description: Optional. Only if `op`==`add`
                items:
                  type: string
                type: array
              vc_role:
                description: Optional. Only if `op`==`add`
                enum:
                  - master
                  - backup
                  - linecard
                type: string
            type: object
          type: array
        new-member:
          description: Only if `op`==`renumber`
          type: integer
        op:
          enum:
            - add
            - remove
            - renumber
          type: string
      title: ""
      type: object
      x-examples:
        add_member:
          members:
            - mac: aff827549235
              member: 0
              vc_ports:
                - xe-0/1/1
              vc_role: linecard
            - mac: 8396cd00777c
              vc_ports:
                - xe-0/1/0
              vc_role: linecard
          op: add
        create:
          members:
            - mac: aff827549235
              vc_ports:
                - xe-0/1/0
              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
              vc_role: linecard
        remove_member:
          members:
            - member: 2
            - member: 3
          op: remove
      x-stoplight:
        id: ac5bc7de9d2fd
    device_upgrade:
      properties:
        canary_phases:
          default:
            - 1
            - 10
            - 50
            - 100
          description: phases for canary deployment. Each phase represents percentage of AP’s that need to be upgraded. default is [1, 10, 50, 100]
          items:
            type: integer
          type: array
        device_ids:
          items:
            type: string
          type: array
        enable_p2p:
          description: whether to allow local AP-to-AP FW upgrade
          type: boolean
        force:
          default: false
          description: true will force upgrade when requested version is same as running version
          type: boolean
        max_failure_percentage:
          default: 5
          description: percentage of failures allowed across the entire upgrade(not applicable for `big_bang`)
          maximum: 100
          minimum: 0
          type: number
        max_failures:
          description: number of failures allowed within each phase(applicable for `canary` or `rrm`). Will be used if provided, else max_failure_percentage will be used
          items:
            type: integer
          type: array
        models:
          items:
            type: string
          type: array
        p2p_cluster_size:
          default: 10
          example: 0
          minimum: 0
          type: integer
        p2p_parallelism:
          description: number of parallel p2p download batches to creat
          type: integer
        reboot:
          default: false
          description: Reboot device immediately after upgrade is completed (Available on Junos OS devices)
          type: boolean
        reboot_at:
          description: reboot start time in epoch seconds, default is `start_time`
          example: 1624399840
          type: number
        rrm_first_batch_percentage:
          description: percentage of AP’s that need to be present in the first rrm batch
          example: 2
          type: integer
        rrm_max_batch_percentage:
          description: max percentage of AP’s that need to be present in each rrm batch
          example: 10
          type: integer
        rrm_mesh_upgrade:
          description: sequential or parallel (default parallel). Whether to upgrade mesh AP’s parallelly or sequentially at the end of the upgrade
          type: string
        rrm_node_order:
          default: fringe_to_center
          description: Used in rrm to determine whether to start upgrade from fringe or center AP’s
          enum:
            - fringe_to_center
            - center_to_fringe
          type: string
        rrm_slow_ramp:
          description: true will make rrm batch sizes slowly ramp up
          type: boolean
        snapshot:
          default: false
          description: Perform recovery snapshot after device is rebooted (Available on Junos OS devices)
          type: boolean
        start_time:
          description: upgrade start time in epoch seconds, default is now
          example: 1624399840
          type: number
        strategy:
          default: big_bang
          description: "`big_bang` (upgrade all at once), `serial` (one at a time), `canary` or `rrm`"
          enum:
            - big_bang
            - canary
            - serial
            - rrm
          minLength: 1
          type: string
        version:
          default: latest
          description: specific version / stable
          example: 3.1.5
          minLength: 1
          type: string
      title: device_upgrade
      type: object
      x-examples:
        example-1:
          canary_phases:
            - 1
            - 10
            - 50
            - 100
          device_ids:
            - string
          enable_p2p: true
          force: false
          max_failure_percentage: 5
          max_failures:
            - 0
          models:
            - string
          p2p_cluster_size: 10
          reboot: false
          reboot_at: 1624399840
          rrm_first_batch_percentage: 2
          rrm_max_batch_percentage: 10
          rrm_mesh_upgrade: string
          rrm_node_order: fringe_to_center
          rrm_slow_ramp: true
          snapshot: false
          start_time: 1624399840
          strategy: big_bang
          version: stable
    device_upgrade_response:
      description: ""
      properties:
        counts:
          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
        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:
          description: unique id for the upgrade
          format: uuid
          minLength: 1
          readOnly: true
          type: string
        max_failure_percentage:
          description: percentage of failures allowed
          type: integer
        max_failures:
          description: number of failures allowed within a canary phase or serial rollout
          items:
            type: integer
          type: array
        reboot_at:
          description: reboot start time in epoch
          type: integer
        start_time:
          description: firmware download start time in epoch
          type: number
        status:
          description: status upgrade is in
          enum:
            - created
            - completed
            - canceled
            - downloading
          type: string
        strategy:
          default: big_bang
          description: upgrade strategy
          enum:
            - big_bang
          minLength: 1
          type: string
        target_version:
          description: version to upgrade to
          minLength: 1
          type: string
        upgrade_plan:
          description: a dictionary of rrm phase number to devices part of that phase
          type: object
      required:
        - id
      title: device_upgrade_response
      type: object
      x-examples:
        example-1:
          counts:
            download_requested: 0
            downloaded: 0
            failed: 0
            reboot_in_progress: 0
            rebooted: 0
            skipped: 0
            total: 0
          enable_p2p: true
          force: true
          id: 449f6eca-6276-4997-bfeb-53cbbbba6f08
          start_time: 0
          status: created
          strategy: big_bang
          target_version: string
    deviceprofile:
      description: Device Profile
      minItems: 1
      properties:
        aeroscout:
          $ref: "#/components/schemas/ap_aeroscout"
        ble_config:
          $ref: "#/components/schemas/ap_ble"
        created_time:
          readOnly: true
          type: number
        disable_eth1:
          default: false
          description: whether to disable eth1 port
          type: boolean
        disable_eth2:
          default: false
          description: whether to disable eth2 port
          type: boolean
        disable_eth3:
          default: false
          description: whether to disable eth3 port
          type: boolean
        disable_module:
          default: false
          description: whether to disable module port
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        height:
          description: Device Only. Height, in meters, optional
          nullable: true
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        iot_config:
          $ref: "#/components/schemas/ap_iot"
        ip_config:
          $ref: "#/components/schemas/ap_ip"
        led:
          $ref: "#/components/schemas/ap_led"
        map_id:
          description: Device Only.. Map where the device belongs to
          format: uuid
          nullable: true
          type: string
        mesh:
          $ref: "#/components/schemas/ap_mesh"
        modified_time:
          readOnly: true
          type: number
        name:
          nullable: true
          type: string
        notes:
          description: Device Only. Any notes about this AP
          nullable: true
          type: string
        ntp_servers:
          items:
            type: string
          type: array
        org_id:
          format: uuid
          readOnly: true
          type: string
        orientation:
          description: Device Only. Orientation, 0-359, in degrees, up is 0, right is 90.
          maximum: 359
          minimum: 0
          type: number
        orientation_overwrite:
          description: whether the user overwrite the orientation
          type: boolean
        poe_passthrough:
          default: false
          description: whether to enable power out through module port (for APH) or eth1 (for APL/BT11)
          type: boolean
        port_config:
          additionalProperties:
            $ref: "#/components/schemas/ap_port_config"
          description: The property key is the interface(s) name (e.g. "eth1,eth2")
          type: object
        pwr_config:
          description: power related configs
          properties:
            base:
              default: 0
              description: additional power to request during negotiating with PSE over PoE, in mW
              type: number
          type: object
        radio_config:
          $ref: "#/components/schemas/ap_radio"
        site_id:
          format: uuid
          readOnly: true
          type: string
        switch_config:
          $ref: "#/components/schemas/ap_switch"
        type:
          default: ap
          enum:
            - ap
            - switch
            - gateway
          type: string
        usb_config:
          $ref: "#/components/schemas/ap_usb"
        vars:
          description: a dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
          type: object
        x:
          description: Device Only. x in pixel
          nullable: true
          type: number
        y:
          description: Device Only. y in pixel
          nullable: true
          type: number
      type: object
      uniqueItems: true
      x-examples:
        device-ap:
          aeroscout:
            enabled: true
            host: string
          ble_config:
            beacon_enabled: true
            beacon_rate: 0
            beacon_rate_mode: string
            beam_disabled:
              - 0
            eddystone_uid_adv_power: -100
            eddystone_uid_beams: string
            eddystone_uid_enabled: true
            eddystone_uid_freq_msec: 0
            eddystone_uid_instance: string
            eddystone_uid_namespace: string
            eddystone_url_adv_power: 0
            eddystone_url_beams: string
            eddystone_url_enabled: true
            eddystone_url_freq_msec: 0
            eddystone_url_url: string
            ibeacon_adv_power: -100
            ibeacon_beams: string
            ibeacon_enabled: true
            ibeacon_freq_msec: 0
            ibeacon_major: 0
            ibeacon_minor: 0
            ibeacon_uuid: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            power: 0
            power_mode: string
          created_time: 0
          deviceprofile_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          disable_eth1: true
          disable_eth2: true
          disable_eth3: true
          disable_module: true
          height: 0
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          image1_url: string
          iot_config:
            A1:
              enabled: true
              name: string
              output: true
              pullup: internal
              value: true
            A2:
              enabled: true
              name: string
              output: true
              pullup: internal
              value: true
            A3:
              enabled: true
              name: string
              output: true
              pullup: internal
              value: true
            A4:
              enabled: true
              name: string
              output: true
              pullup: internal
              value: true
            DI1:
              enabled: true
              name: string
              pullup: internal
              value: true
            DI2:
              enabled: true
              name: string
              pullup: internal
              value: true
            DO:
              enabled: true
              name: string
              output: true
              pullup: internal
              value: true
          ip_config:
            dns:
              - string
            dns_suffix:
              - string
            gateway: 192.168.0.1
            gateway6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            ip: 192.168.0.1
            ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            mtu: 0
            netmask: 192.168.0.1
            netmask6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            type: static
            type6: static
            vlan_id: 1
          led:
            brightness: 0
            enabled: true
          map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          mesh:
            enabled: true
            group: 0
            role: base
          modified_time: 0
          name: string
          notes: string
          ntp_servers:
            - string
          org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          orientation: 0
          orientation_overwrite: true
          poe_passthrough: true
          port_config:
            property1:
              disabled: true
              dynamic_vlan:
                default_vlan_id: 1
                enabled: true
                type: string
                vlans:
                  property1: string
                  property2: string
              enable_mac_auth: true
              forwarding: all
              mx_tunnel_id: string
              mxtunnel_name: string
              port_auth: none
              port_vlan_id: 1
              radius_config:
                acct_interim_interval: 0
                acct_servers:
                  - host: string
                    port: 0
                    secret: string
                auth_servers:
                  - host: string
                    port: 0
                    secret: string
                auth_servers_retries: 0
                auth_servers_timeout: 0
              radsec:
                enabled: true
                server_name: string
                servers:
                  - host: string
                    port: 0
                use_mxedge: true
              vland_ids:
                - 0
              wxtunnel_id: string
              wxtunnel_remote_id: string
            property2:
              disabled: true
              dynamic_vlan:
                default_vlan_id: 1
                enabled: true
                type: string
                vlans:
                  property1: string
                  property2: string
              enable_mac_auth: true
              forwarding: all
              mx_tunnel_id: string
              mxtunnel_name: string
              port_auth: none
              port_vlan_id: 1
              radius_config:
                acct_interim_interval: 0
                acct_servers:
                  - host: string
                    port: 0
                    secret: string
                auth_servers:
                  - host: string
                    port: 0
                    secret: string
                auth_servers_retries: 0
                auth_servers_timeout: 0
              radsec:
                enabled: true
                server_name: string
                servers:
                  - host: string
                    port: 0
                use_mxedge: true
              vland_ids:
                - 0
              wxtunnel_id: string
              wxtunnel_remote_id: string
          pwr_config:
            base: 0
          radio_config:
            ant_gain_24: 0
            ant_gain_5: 0
            band_24:
              allow_rrm_disable: true
              antenna_mode: default
              bandwidth: 20
              channel: 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: auto
              usage: "24"
            band_24_usage: "24"
            band_5:
              allow_rrm_disable: true
              antenna_mode: default
              bandwidth: 20
              channel: 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: auto
              usage: string
            band_5_on_24_radio:
              allow_rrm_disable: true
              antenna_mode: default
              bandwidth: 20
              channel: 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: auto
              usage: "24"
            scanning_enabled: true
          site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          switch_config:
            enabled: true
            eth0:
              port_vlan_id: 1
              vlan_ids:
                - 0
            eth1:
              port_vlan_id: 1
              vlan_ids:
                - 0
            eth2:
              port_vlan_id: 1
              vlan_ids:
                - 0
            eth3:
              port_vlan_id: 1
              vlan_ids:
                - 0
            module:
              port_vlan_id: 1
              vlan_ids:
                - 0
            wds:
              port_vlan_id: 1
              vlan_ids:
                - 0
          usb_config:
            cacert: string
            channel: 0
            enabled: true
            host: string
            port: 0
            type: string
            verify_cert: true
          vars: {}
          x: 0
          y: 0
    event_call:
      properties:
        app:
          type: string
        audio_quality:
          type: string
        meeting_id:
          type: string
        org_id:
          type: string
        reason:
          type: string
        screen_share_quality:
          type: string
        site_id:
          type: string
        timestamp:
          type: integer
        type:
          type: string
        video_quality:
          type: string
        wcid:
          type: string
      type: object
      x-examples:
        Example 1:
          app: zoom
          audio_quality: good
          meeting_id: "87609329850"
          org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
          reason: Host ended the meeting.
          screen_share_quality: good
          site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
          timestamp: 1674199827
          type: CLIENT_LEFT_CALL
          video_quality: good
          wcid: 82c70a73-e2e1-42f9-6da0-97db44b7b9ad
    events_client:
      description: client events
      properties:
        ap:
          type: string
        band:
          enum:
            - "24"
            - "5"
          type: string
        bssid:
          type: string
        channel:
          type: integer
        proto:
          description: b / g / n / a / ac
          enum:
            - a
            - b
            - g
            - n
            - ac
            - ax
          type: string
        ssid:
          type: string
        text:
          type: string
        timestamp:
          type: number
        type:
          description: event type, e.g. MARVIS_EVENT_CLIENT_FBT_FAILURE
          type: string
        type_code:
          description: for assoc/disassoc events
          type: integer
        wlan_id:
          format: uuid
          type: string
      required:
        - proto
        - timestamp
        - band
      type: object
      x-examples:
        example-1:
          ap: 5c5b350eb31b
          band: "5"
          bssid: 5c5b350918f1
          channel: 149
          proto: ac
          ssid: Guest
          text: 'Status code 0 "Successful" '
          timestamp: 1513358874.667
          type: CLIENT_DNS_OK
          type_code: 15
          wlan_id: be22bba7-8e22-e1cf-5185-b880816fe2cf
    events_device_ap:
      description: ap events
      properties:
        last_reboot_time:
          type: number
        text:
          type: string
        timestamp:
          type: number
        type:
          type: string
        type_code:
          type: integer
      required:
        - timestamp
      type: object
    events_rogue:
      description: rogue events
      properties:
        ap:
          type: string
        bssid:
          type: string
        channel:
          type: integer
        rssi:
          type: integer
        ssid:
          type: string
        timestamp:
          type: number
      required:
        - ssid
        - bssid
        - timestamp
        - ap
        - rssi
        - channel
      type: object
      x-examples:
        example-1:
          ap: 5c5b350e10030
          bssid: 60d02c2394cc
          channel: 11
          rssi: -59
          ssid: Home-Office
          timestamp: 1538074612
    events_skyatp:
      description: SkyATP events
      properties:
        device_mac:
          readOnly: true
          type: string
        for_site:
          readOnly: true
          type: boolean
        ip:
          readOnly: true
          type: string
        mac:
          readOnly: true
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        threat_level:
          readOnly: true
          type: integer
        timestamp:
          readOnly: true
          type: number
        type:
          readOnly: true
          type: string
      required:
        - mac
        - threat_level
        - device_mac
        - timestamp
        - org_id
        - site_id
        - type
        - ip
      type: object
      x-examples:
        example-1:
          device_mac: 658279bb1fa4
          ip: 172.16.0.11
          mac: b019c66c8348
          org_id: 3139f2c2-fac6-11e5-8156-0242ac110006
          site_id: 70e0f468-fc13-11e5-85ad-0242ac110008
          threat_level: 7
          timestamp: 1592524478
          type: cc
    gatewaytemplate:
      description: Gateway Template is applied to a site for gateway(s) in a site.
      properties:
        additional_config_cmds:
          items:
            type: string
          type: array
        bgp_config:
          additionalProperties:
            $ref: "#/components/schemas/junos_bgp_config"
          type: object
        created_time:
          readOnly: true
          type: number
        dhcpd_config:
          additionalProperties:
            properties:
              dns_servers:
                items:
                  format: ipv4
                  type: string
                type: array
              dns_suffix:
                items:
                  type: string
                type: array
              fixed_bindings:
                additionalProperties:
                  properties:
                    ip:
                      format: ipv4
                      type: string
                    name:
                      type: string
                  required:
                    - ip
                  type: object
                description: The property key is the device MAC address
                type: object
              gateway:
                format: ipv4
                type: string
              ip_end:
                format: ipv4
                type: string
              ip_start:
                format: ipv4
                type: string
              servers:
                items:
                  format: ipv4
                  type: string
                type: array
              type:
                default: local
                enum:
                  - local
                  - relay
                type: string
            type: object
          description: The property key is the network name
          type: object
        extra_routes:
          additionalProperties:
            description: The property key is a CIDR or name from `networks`
            properties:
              via:
                format: ipv4
                type: string
            type: object
          type: object
        gateway_matching:
          $ref: "#/components/schemas/template_gateway.matching"
        id:
          format: uuid
          readOnly: true
          type: string
        ip_configs:
          additionalProperties:
            properties:
              ip:
                format: ipv4
                type: string
              netmask:
                example: /24
                type: string
            type: object
          description: The property key is the network name
          type: object
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        networks:
          additionalProperties:
            $ref: "#/components/schemas/network"
          description: The property key is the network name
          type: object
        oob_ip_config:
          $ref: "#/components/schemas/junos_oob_ip_config"
        org_id:
          format: uuid
          readOnly: true
          type: string
        path_preferences:
          additionalProperties:
            description: The property key is the path name
            properties:
              paths:
                properties:
                  cost:
                    type: integer
                  gateway_ip:
                    description: if `type`==`local`, if a different gateway is desired
                    type: string
                  internet_access:
                    default: false
                    description: when `type`==`vpn`, if this vpn path can be used for internet
                    type: boolean
                  name:
                    type: string
                  networks:
                    description: if `type`==`local`
                    items:
                      type: string
                    type: array
                  target_ips:
                    description: if `type`==`local`, if destination IP is to be replaced
                    items:
                      type: string
                    type: array
                  type:
                    enum:
                      - local
                      - wan
                      - vpn
                      - tunnel
                    type: string
                type: object
              strategy:
                default: ordered
                enum:
                  - ordered
                  - weighted
                  - ecmp
                type: string
            type: object
          description: experimental
          type: object
        port_config:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_config_gateway"
          description: The property key is the port(s) name or range (e.g. "ge-0/0/0-10")
          type: object
        routing_policies:
          additionalProperties:
            $ref: "#/components/schemas/junos_routing_policy"
          description: The property key is the routing policy name
          type: object
        service_policies:
          items:
            properties:
              action:
                default: allow
                enum:
                  - allow
                  - deny
                type: string
              ewf:
                items:
                  properties:
                    alert_only:
                      type: boolean
                    block_message:
                      example: Access to this URL Category has been blocked
                      type: string
                    enabled:
                      default: false
                      type: boolean
                    profille:
                      default: strict
                      enum:
                        - strict
                        - standard
                      type: string
                  type: object
                type: array
              idp:
                $ref: "#/components/schemas/junos_idp_config"
              local_routing:
                default: false
                description: access within the same VRF
                type: boolean
              name:
                type: string
              path_preferences:
                description: |-
                  by default, we derive all paths available and use them
                  optionally, you can customize by using `path_preference`
                type: string
              servicepolicy_id:
                description: used to link servicepolicy defined at org level and overwrite some attributes
                format: uuid
                type: string
              services:
                items:
                  type: string
                type: array
              tenants:
                items:
                  type: string
                type: array
            type: object
          type: array
        tunnel_configs:
          additionalProperties:
            $ref: "#/components/schemas/gatewaytemplate_tunnel_configs"
          description: Property key is the tunnel name
          type: object
        type:
          default: standalone
          enum:
            - standalone
            - spoke
            - hub
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          additional_config_cmds:
            - string
          bgp_config:
            property1:
              auth_key: string
              bfd_minimum_interval: 0
              communities:
                - id: string
                  local_preference: 0
                  vpn_name: string
              export: string
              export_policy: string
              graceful_restart_time: 0
              hold_time: 90
              import: string
              import_policy: string
              local_as: 0
              neighbor_as: 0
              neighbors:
                property1:
                  export_policy: string
                  hold_time: 90
                  import_policy: string
                  multihop_ttl: 0
                  neighbor_as: 0
                property2:
                  export_policy: string
                  hold_time: 90
                  import_policy: string
                  multihop_ttl: 0
                  neighbor_as: 0
              networks:
                - string
              type: internal
              via: string
              wan_name: string
            property2:
              auth_key: string
              bfd_minimum_interval: 0
              communities:
                - id: string
                  local_preference: 0
                  vpn_name: string
              export: string
              export_policy: string
              graceful_restart_time: 0
              hold_time: 90
              import: string
              import_policy: string
              local_as: 0
              neighbor_as: 0
              neighbors:
                property1:
                  export_policy: string
                  hold_time: 90
                  import_policy: string
                  multihop_ttl: 0
                  neighbor_as: 0
                property2:
                  export_policy: string
                  hold_time: 90
                  import_policy: string
                  multihop_ttl: 0
                  neighbor_as: 0
              networks:
                - string
              type: internal
              via: string
              wan_name: string
          created_time: 0
          dhcpd_config:
            property1:
              dns_servers:
                - 192.168.0.1
              dns_suffix:
                - string
              fixed_bindings:
                property1:
                  ip: 192.168.0.1
                  name: string
                property2:
                  ip: 192.168.0.1
                  name: string
              gateway: 192.168.0.1
              ip_end: 192.168.0.1
              ip_start: 192.168.0.1
              servers:
                - 192.168.0.1
              type: local
            property2:
              dns_servers:
                - 192.168.0.1
              dns_suffix:
                - string
              fixed_bindings:
                property1:
                  ip: 192.168.0.1
                  name: string
                property2:
                  ip: 192.168.0.1
                  name: string
              gateway: 192.168.0.1
              ip_end: 192.168.0.1
              ip_start: 192.168.0.1
              servers:
                - 192.168.0.1
              type: local
          extra_routes:
            property1:
              via: 192.168.0.1
            property2:
              via: 192.168.0.1
          gateway_matching:
            enable: true
            rules:
              - additional_config_cmds:
                  - string
                name: string
                port_config:
                  property1:
                    ae_disable_lacp: true
                    ae_idx: 0
                    aggregated: false
                    description: string
                    disable_autoneg: false
                    duplex: auto
                    dynamic_usage: string
                    esilag: true
                    mtu: 1514
                    no_local_overwrite: true
                    poe_disabled: false
                    speed: auto
                    usage: string
                  property2:
                    ae_disable_lacp: true
                    ae_idx: 0
                    aggregated: false
                    description: string
                    disable_autoneg: false
                    duplex: auto
                    dynamic_usage: string
                    esilag: true
                    mtu: 1514
                    no_local_overwrite: true
                    poe_disabled: false
                    speed: auto
                    usage: string
                property1: string
                property2: string
          id: 497f6eca-6276-5010-bfeb-53cbbbba6f08
          ip_configs:
            property1:
              ip: 192.168.0.1
              netmask: /24
            property2:
              ip: 192.168.0.1
              netmask: /24
          modified_time: 0
          name: string
          networks:
            property1:
              created_time: 0
              disallow_mist_services: false
              gateway: 192.168.70.1
              hosts:
                property1:
                  external_ips: 172.16.10.32-172.16.10.35
                  ips: 192.168.70.32-192.168.70.35
                property2:
                  external_ips: 172.16.10.32-172.16.10.35
                  ips: 192.168.70.32-192.168.70.35
              id: 497f6eca-6276-5011-bfeb-53cbbbba6f08
              internal_access:
                enabled: true
              internet_access:
                create_simple_service_policy: false
                destination_nat:
                  property1:
                    internal_ip: string
                    name: string
                    port: string
                  property2:
                    internal_ip: string
                    name: string
                    port: string
                enabled: true
                restricted: false
                static_nat:
                  property1:
                    internal_ip: string
                    name: string
                  property2:
                    internal_ip: string
                    name: string
              isolation: true
              modified_time: 0
              name: string
              org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
              subnet: 192.168.70.0/24
              tenants:
                property1:
                  addresses: string
                property2:
                  addresses: string
              vlan_id: 0
              vpn_access:
                property1:
                  allow_ping: true
                  destination_nat:
                    property1:
                      name: string
                      port: string
                      to: string
                    property2:
                      name: string
                      port: string
                      to: string
                  nat_pool: string
                  routed: true
                  source_nat:
                    exteral_ip: string
                  static_nat:
                    property1:
                      name: string
                      to: string
                    property2:
                      name: string
                      to: string
                  summarized_nat_pool: string
                property2:
                  allow_ping: true
                  destination_nat:
                    property1:
                      name: string
                      port: string
                      to: string
                    property2:
                      name: string
                      port: string
                      to: string
                  nat_pool: string
                  routed: true
                  source_nat:
                    exteral_ip: string
                  static_nat:
                    property1:
                      name: string
                      to: string
                    property2:
                      name: string
                      to: string
                  summarized_nat_pool: string
            property2:
              created_time: 0
              disallow_mist_services: false
              gateway: 192.168.70.1
              hosts:
                property1:
                  external_ips: 172.16.10.32-172.16.10.35
                  ips: 192.168.70.32-192.168.70.35
                property2:
                  external_ips: 172.16.10.32-172.16.10.35
                  ips: 192.168.70.32-192.168.70.35
              id: 497f6eca-6276-5012-bfeb-53cbbbba6f08
              internal_access:
                enabled: true
              internet_access:
                create_simple_service_policy: false
                destination_nat:
                  property1:
                    internal_ip: string
                    name: string
                    port: string
                  property2:
                    internal_ip: string
                    name: string
                    port: string
                enabled: true
                restricted: false
                static_nat:
                  property1:
                    internal_ip: string
                    name: string
                  property2:
                    internal_ip: string
                    name: string
              isolation: true
              modified_time: 0
              name: string
              org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
              subnet: 192.168.70.0/24
              tenants:
                property1:
                  addresses: string
                property2:
                  addresses: string
              vlan_id: 0
              vpn_access:
                property1:
                  allow_ping: true
                  destination_nat:
                    property1:
                      name: string
                      port: string
                      to: string
                    property2:
                      name: string
                      port: string
                      to: string
                  nat_pool: string
                  routed: true
                  source_nat:
                    exteral_ip: string
                  static_nat:
                    property1:
                      name: string
                      to: string
                    property2:
                      name: string
                      to: string
                  summarized_nat_pool: string
                property2:
                  allow_ping: true
                  destination_nat:
                    property1:
                      name: string
                      port: string
                      to: string
                    property2:
                      name: string
                      port: string
                      to: string
                  nat_pool: string
                  routed: true
                  source_nat:
                    exteral_ip: string
                  static_nat:
                    property1:
                      name: string
                      to: string
                    property2:
                      name: string
                      to: string
                  summarized_nat_pool: string
          oob_ip_config:
            additionalProperties:
              ip: string
              netmask: string
              network: string
              type: dynamic
            dns:
              - string
            dns_suffix:
              - string
            gateway: string
            ip: string
            netmask: string
            network: string
            type: dynamic
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          path_preferences:
            property1:
              paths:
                cost: 0
                gateway_ip: string
                internet_access: false
                name: string
                networks:
                  - string
                target_ips:
                  - string
                type: local
              strategy: ordered
            property2:
              paths:
                cost: 0
                gateway_ip: string
                internet_access: false
                name: string
                networks:
                  - string
                target_ips:
                  - string
                type: local
              strategy: ordered
          port_config:
            property1:
              description: string
              dsl_config:
                ppoe_auth: none
                ppoe_password: string
                ppoe_username: string
              dsl_type: string
              ip_config:
                dns:
                  - string
                dns_suffix:
                  - string
                gateway: string
                ip: string
                netmask: string
                network: string
                poser_password: string
                ppoe_username: string
                pppoe_auth: none
                type: dhcp
              lte_apn: string
              lte_auth: none
              lte_backup: true
              lte_password: string
              lte_username: string
              name: string
              networks:
                - string
              pci_address: string
              port_network: string
              redundant: true
              reth_idx: 0
              reth_node: string
              traffic_shaping:
                enabled: true
                max_tx_kbps: 0
              usage: lan
              vlan_id: 0
              vpn_paths:
                property1:
                  bfd_profile: string
                  role: spoke
                property2:
                  bfd_profile: string
                  role: spoke
              wan_ext_ip: string
              wan_source_nat:
                disabled: false
                nat_pool: 64.2.4.0/30
              wan_type: broadband
            property2:
              description: string
              dsl_config:
                ppoe_auth: none
                ppoe_password: string
                ppoe_username: string
              dsl_type: string
              ip_config:
                dns:
                  - string
                dns_suffix:
                  - string
                gateway: string
                ip: string
                netmask: string
                network: string
                poser_password: string
                ppoe_username: string
                pppoe_auth: none
                type: dhcp
              lte_apn: string
              lte_auth: none
              lte_backup: true
              lte_password: string
              lte_username: string
              name: string
              networks:
                - string
              pci_address: string
              port_network: string
              redundant: true
              reth_idx: 0
              reth_node: string
              traffic_shaping:
                enabled: true
                max_tx_kbps: 0
              usage: lan
              vlan_id: 0
              vpn_paths:
                property1:
                  bfd_profile: string
                  role: spoke
                property2:
                  bfd_profile: string
                  role: spoke
              wan_ext_ip: string
              wan_source_nat:
                disabled: false
                nat_pool: 64.2.4.0/30
              wan_type: broadband
          routing_policies:
            property1:
              terms:
                - action:
                    accept: true
                    community:
                      - 65003:10
                    exclude_as_path:
                      - "65002"
                    export_communitites:
                      - string
                    local_preference: string
                    prepend_as_path:
                      - "65003"
                  matching:
                    as_path:
                      - "65001"
                    community:
                      - 65001:2
                    network:
                      - string
                    prefix:
                      - 192.168.0.0/16-30
                    protocol:
                      - direct
                    route_exists:
                      route: 192.168.0.0/24
                      vrf_name: default
            property2:
              terms:
                - action:
                    accept: true
                    community:
                      - 65003:10
                    exclude_as_path:
                      - "65002"
                    export_communitites:
                      - string
                    local_preference: string
                    prepend_as_path:
                      - "65003"
                  matching:
                    as_path:
                      - "65001"
                    community:
                      - 65001:2
                    network:
                      - string
                    prefix:
                      - 192.168.0.0/16-30
                    protocol:
                      - direct
                    route_exists:
                      route: 192.168.0.0/24
                      vrf_name: default
          service_policies:
            - action: allow
              ewf:
                - alert_only: true
                  block_message: Access to this URL Category has been blocked
                  enabled: false
                  profille: strict
              idp:
                alert_only: string
                enabled: false
                profile: strict
              local_routing: false
              name: string
              path_preferences: string
              servicepolicy_id: a4b81837-7a2f-46c1-bf27-dc8af6edd0a0
              services:
                - string
              tenants:
                - string
          tunnel_configs:
            property1:
              ike_lifetime: 0
              ike_mode: main
              ike_proposals:
                - auth_algo: sha1
                  dh_group: "14"
                  enc_algo: aes256
              ipsec_lifetime: 0
              ipsec_proposals:
                - auth_algo: sha1
                  dh_group: "14"
                  enc_algo: aes256
              local_id: string
              primary:
                hosts:
                  - string
                intern_ips:
                  - string
                probe_ips:
                  - string
                wan_names:
                  - string
              probe:
                interval: 0
                threshold: 0
                timeout: 0
                type: icmp
              protocol: ipsec
              provider: zscaler-ipsec
              psk: string
              secondary:
                hosts:
                  - string
                intern_ips:
                  - string
                probe_ips:
                  - string
                wan_names:
                  - string
              version: "2"
            property2:
              ike_lifetime: 0
              ike_mode: main
              ike_proposals:
                - auth_algo: sha1
                  dh_group: "14"
                  enc_algo: aes256
              ipsec_lifetime: 0
              ipsec_proposals:
                - auth_algo: sha1
                  dh_group: "14"
                  enc_algo: aes256
              local_id: string
              primary:
                hosts:
                  - string
                intern_ips:
                  - string
                probe_ips:
                  - string
                wan_names:
                  - string
              probe:
                interval: 0
                threshold: 0
                timeout: 0
                type: icmp
              protocol: ipsec
              provider: zscaler-ipsec
              psk: string
              secondary:
                hosts:
                  - string
                intern_ips:
                  - string
                probe_ips:
                  - string
                wan_names:
                  - string
              version: "2"
          type: standalone
    gatewaytemplate_tunnel_configs:
      properties:
        ike_lifetime:
          description: |-
            Only if:
            * `provider`== `custom-ipsec`
          type: integer
        ike_mode:
          default: main
          description: |-
            Only if:
            * `provider`== `custom-ipsec`
          enum:
            - main
            - aggressive
          type: string
        ike_proposals:
          description: if `provider`== `custom-ipsec`
          items:
            properties:
              auth_algo:
                enum:
                  - sha1
                  - sha2
                  - md5
                type: string
              dh_group:
                default: "14"
                description: |-
                  * 1 
                  * 2 (1024-bit) 
                  * 5
                  * 14 (default, 2048-bit)
                  * 15 (3072-bit) 
                  * 16 (4096-bit)
                  * 19 (256-bit ECP)
                  * 20 (384-bit ECP)
                  * 21 (521-bit ECP) 
                  * 24 (2048-bit ECP)
                enum:
                  - "1"
                  - "2"
                  - "5"
                  - "14"
                  - "15"
                  - "16"
                  - "19"
                  - "20"
                  - "21"
                  - "24"
                type: string
              enc_algo:
                default: aes256
                enum:
                  - aes256
                  - 3des
                  - aes128
                  - aes_gcm256
                  - aes_gcm128
                nullable: true
                type: string
            type: object
          type: array
        ipsec_lifetime:
          description: if `provider`== `custom-ipsec`
          type: integer
        ipsec_proposals:
          description: |-
            Only if:
            * `provider`== `custom-ipsec`
          items:
            properties:
              auth_algo:
                enum:
                  - sha1
                  - sha2
                  - md5
                type: string
              dh_group:
                default: "14"
                description: |-
                  Only if:
                  * `provider`== `custom-ipsec`
                  Values:
                  * 1 
                  * 2 (1024-bit) 
                  * 5
                  * 14 (default, 2048-bit) 
                  * 15 (3072-bit) 
                  * 16 (4096-bit)
                  * 19 (256-bit ECP)
                  * 20 (384-bit ECP)
                  * 21 (521-bit ECP) 
                  * 24 (2048-bit ECP)
                enum:
                  - "1"
                  - "2"
                  - "5"
                  - "14"
                  - "15"
                  - "16"
                  - "19"
                  - "20"
                  - "21"
                  - "24"
                type: string
              enc_algo:
                default: aes256
                enum:
                  - aes256
                  - 3des
                  - aes128
                  - aes_gcm128
                  - aes_gcm256
                nullable: true
                type: string
            type: object
          type: array
        local_id:
          description: |-
            Only if:
            * `provider`== `zscaler-ipsec`
            * `provider`==`jse-ipsec`
            * `provider`== `custom-ipsec`
          type: string
        mode:
          default: active-standby
          enum:
            - active-standby
            - active-active
          type: string
        primary:
          properties:
            hosts:
              items:
                description: IP Address of the remote host
                type: string
              type: array
            internal_ips:
              description: |-
                Only if:
                * `provider`== `zscaler-gre` 
                * `provider`== `custom-gre`
              items:
                type: string
              type: array
            probe_ips:
              items:
                type: string
              type: array
            remote_ids:
              description: |-
                Only if:
                * `provider`== `custom-ipsec`
              items:
                type: string
              type: array
            wan_names:
              items:
                type: string
              type: array
          type: object
        probe:
          description: |-
            Only if:
            * `provider`== `custom-ipsec`
          properties:
            interval:
              description: how often to trigger the probe
              type: integer
            threshold:
              description: number of consecutive misses before declaring the tunnel down
              type: integer
            timeout:
              description: time within which to complete the connectivity check
              type: integer
            type:
              default: icmp
              enum:
                - icmp
                - http
              type: string
          type: object
        protocol:
          description: |-
            Only if:
            * `provider`== `custom-ipsec`
          enum:
            - ipsec
            - gre
          type: string
        provider:
          enum:
            - zscaler-ipsec
            - zscaler-gre
            - customer-gre
            - jse-ipsec
            - custom-ipsec
          type: string
        psk:
          description: |-
            Only if:
            * `provider`== `zscaler-ipsec`
            * `provider`==`jse-ipsec`
            * `provider`== `custom-ipsec`
          type: string
        secondary:
          properties:
            hosts:
              items:
                description: IP Address of the remote host
                type: string
              type: array
            internal_ips:
              description: |-
                Only if:
                * `provider`== `custom-ipsec`
              items:
                type: string
              type: array
            probe_ips:
              items:
                type: string
              type: array
            remote_ids:
              description: |-
                Only if: 
                * `provider`== `custom-ipsec`
              items:
                type: string
              type: array
            wan_names:
              items:
                type: string
              type: array
          type: object
        version:
          default: "2"
          description: |-
            Only if:
            * `provider`== `custom-gre` 
            * `provider`== `custom-ipsec`
          enum:
            - "1"
            - "2"
          type: string
      title: gatewaytemplate_tunnel_configs
      type: object
      x-examples:
        custom:
          ike_lifetime: 3600
          ike_proposals:
            - auth_algo: sha2
              dh_group: "2"
              enc_algo: aes256
          ipsec_lifetime: 1800
          ipsec_proposals:
            - auth_algo: sha2
              dh_group: "2"
              enc_algo: aes256
          local_id: "{{ SITE_LOCAL_ID }}"
          primary:
            hosts:
              - 63.1.5.3
          probe:
            interval: 120
            threshold: 3
            timeout: 20
            type: icmp
          protocol: ipsec
          provider: custom
          psk: "{{ SITE_PRESHARED_KEY }}"
          secondary:
            hosts:
              - 63.1.5.3
          version: "2"
        zscaler-gre:
          primary:
            intern_ips:
              - 172.18.58.121
            ips:
              - 216.66.5.49
            probe_ips:
              - 172.18.58.122
          provider: zscaler-gre
          secondary:
            intern_ips:
              - 172.18.58.125
            ips:
              - 199.168.149.179
            probe_ips:
              - 172.18.58.126
        zscaler-ipsec:
          local_id: "{{ SITE_LOCAL_ID }}"
          primary:
            hosts:
              - 63.1.5.3
          provider: zscaler-ipsec
          psk: "{{ SITE_PRESHARED_KEY }}"
          secondary:
            hosts:
              - 63.1.5.3
      x-stoplight:
        id: he1v15qwk4t9y
    guest:
      description: Guest
      properties:
        authorized:
          description: whether the guest is current authorized
          type: boolean
        authorized_expiring_time:
          description: when the authorization would expire
          example: 1480704955
          type: integer
        authorized_time:
          description: when the guest was authorized
          example: 1480704355
          type: integer
        company:
          description: optional, the info provided by user
          example: abc
          type: string
        email:
          description: optional, the info provided by user
          example: john@abc.com
          format: email
          type: string
        field1:
          description: optional, the info provided by user
          type: string
        field2:
          type: string
        field3:
          type: string
        field4:
          type: string
        mac:
          description: mac
          type: string
        minutes:
          description: minutes, the maximum is 259200 (180 days)
          type: integer
        name:
          description: optional, the info provided by user
          example: John Smith
          type: string
        ssid:
          example: Guest-SSID
          readOnly: true
          type: string
        wlan_id:
          example: 6748cfa6-4e12-11e6-9188-0242ac110007
          format: uuid
          readOnly: true
          type: string
      type: object
      x-examples:
        example-1:
          authorized: true
          authorized_expiring_time: 1480704955
          authorized_time: 1480704355
          company: abc
          email: john@abc.com
          field1: xxx
          mac: 5684dae9ac8b
          name: John Smith
    image_upload:
      properties:
        file:
          description: binary file
          format: binary
          type: string
        json:
          description: JSON string describing your upload
          type: string
      required:
        - file {}
      title: image_upload
      type: object
      x-examples:
        example-1:
          file: string
          json: string
    inventory:
      properties:
        adopted:
          description: |-
            only if `type`==`switch` or `type`==`gateway`
            whether the switch/gateway is adopted
          type: boolean
        connected:
          description: whether the device is connected
          type: boolean
        created_time:
          description: inventory created time, in epoch
          type: integer
        deviceprofile_id:
          description: deviceprofile id if assigned, null if not assigned
          nullable: true
          type: string
        hostname:
          description: hostname reported by the device
          type: string
        hw_rev:
          description: device hardware revision number
          type: string
        id:
          description: device id
          type: string
        jsi:
          type: boolean
        mac:
          description: device MAC address
          type: string
        magic:
          description: device claim code
          type: string
        model:
          description: device model
          type: string
        modified_time:
          description: inventory last modified time, in epoch
          type: integer
        name:
          description: device name if configured
          type: string
        org_id:
          description: org id
          type: string
        serial:
          description: device serial
          type: string
        site_id:
          description: site id if assigned, null if not assigned
          nullable: true
          type: string
        sku:
          description: device stock keeping unit
          type: string
        type:
          description: device type
          enum:
            - ap
            - switch
            - gateway
          type: string
      type: object
      x-examples:
        ap:
          connected: true
          created_time: 1585754725
          deviceprofile_id: null
          hw_rev: F11
          id: 00000000-0000-0000-1000-d420b080516d
          jsi: false
          mac: d420b080516d
          magic: XXXXXXXXXXXXXXX
          model: AP41
          modified_time: 1649358858
          name: SaltLakeHQ-AP6d
          org_id: 9777c1a0-6ef6-11e6-8bbf-02e208b2d34f
          serial: A0052190206A2
          site_id: 1505f5d6-5366-4ca2-a9e2-2c6b805e5a47
          sku: AP41-US
          type: ap
        gateway:
          adopted: true
          connected: true
          created_time: 1616108044
          deviceprofile_id: null
          hw_rev: C
          id: 00000000-0000-0000-1000-fc334262af00
          jsi: false
          mac: fc334262af00
          magic: XXXXXXXXXXXXXXX
          model: SRX320
          modified_time: 1616108293
          name: LD_SRX
          org_id: 9777c1a0-6ef6-11e6-8bbf-02e208b2d34f
          serial: CW1419AN0651
          site_id: 978c48e6-6ef6-11e6-8bbf-02e208b2d34f
          sku: SRX320-SYS-JB
          type: gateway
        switch:
          connected: true
          created_time: 1623086870
          deviceprofile_id: null
          hw_rev: C
          id: 00000000-0000-0000-1000-8403280bc0a0
          jsi: false
          mac: 8403280bc0a0
          magic: XXXXXXXXXXXXXXX
          model: EX2300-C-12P
          modified_time: 1656353525
          name: SaltLake-EX2300-C
          org_id: 9777c1a0-6ef6-11e6-8bbf-02e208b2d34f
          serial: HV3620270051
          site_id: 1505f5d6-5366-4ca2-a9e2-2c6b805e5a47
          sku: EX2300-C-12P
          type: switch
    junos_acl_policies:
      description: |-
        - for GBP-based policy, all src_tags and dst_tags have to be gbp-based
        - for ACL-based policy, `network` is required in either the source or destination so that we know where to attach the policy to
      properties:
        allow_dst_tags:
          description: |-
            - for GBP-based policy, all src_tags and dst_tags have to be gbp-based
            - for ACL-based policy, `network` is required in either the source or destination so that we know where to attach the policy to
          items:
            type: string
          type: array
        deny_dst_tags:
          description: |-
            - for GBP-based policy, all src_tags and dst_tags have to be gbp-based
            - for ACL-based policy, `network` is required in either the source or destination so that we know where to attach the policy to
          items:
            type: string
          type: array
        name:
          type: string
        src_tags:
          items:
            type: string
          type: array
      type: object
      x-examples:
        Example 1:
          action: allow
          dst_tags:
            - printer
          name: guest access to printer
          src_tags:
            - guest
      x-stoplight:
        id: 78da34fa64a5f
    junos_acl_tags:
      properties:
        gbp_tag:
          description: |-
            required if
            - `type`==`dynamic_gbp` (gbp_tag received from RADIUS)
            - `type`==`static_gbp` (applying gbp tag against matching conditions)
          type: number
        macs:
          description: |-
            required if 
            - `type`==`mac`
            - `type`==`static_gbp` if from matching mac
          items:
            type: string
          type: array
        network:
          description: |-
            if:
            - `type`==`mac` (optional. default is `any`)
            - `type`==`subnet` (optional. default is `any`)
            - `type`==`network`
            - `type`==`resource` (optional. default is `any`)
            - `type`==`static_gbp` if from matching network (vlan)
          type: string
        radius_group:
          description: |-
            required if 
            - `type`==`radius_group` 
            - `type`==`static_gbp` if from matching radius_group
          type: string
        specs:
          description: |-
            if `type`==`resource`
            empty means unrestricted, i.e. any
          items:
            properties:
              port_range:
                default: 0
                description: matched dst port, "0" means any
                type: integer
              protocol:
                default: any
                description: "`tcp` / `udp` / `icmp` / `gre` / `any` / `:protocol_number`. `protocol_number` is between 1-254"
                type: string
            type: object
          type: array
        subnets:
          description: |-
            if 
            - `type`==`subnet` 
            - `type`==`resource` (optional. default is `any`)
            - `type`==`static_gbp` if from matching subnet
          items:
            type: string
          type: array
        type:
          enum:
            - mac
            - subnet
            - network
            - radius_group
            - any
            - resource
            - dynamic_gbp
            - static_gbp
          type: string
      required:
        - type
      type: object
      x-examples:
        any:
          type: any
        dynamic_gbp:
          gbp_tag: 100
          type: dynamic_gbp
        mac:
          macs:
            - "010203040506"
            - abcdef*
          network: iot
          type: mac
        network:
          network: guest
          type: network
        radius_group:
          radius_group: VIP
          type: radius_group
        resource:
          network: dmz
          specs:
            - port_range: 80
              protocol: tcp
          subnets:
            - 192.168.0.5
          type: resource
        static_gbp:
          gbp_tag: 100
          macs:
            - "010203040506"
            - abcdef*
          network: employee
          radius_group: VIP
          subnets:
            - 192.168.0.0/16
          type: static_gbp
        subnet:
          network: lan
          subnets:
            - 192.168.1.30/32
          type: subnet
    junos_bgp_config:
      properties:
        auth_key:
          type: string
        bfd_minimum_interval:
          default: 0
          description: |-
            default:
            * 1000 if `type`==`external``
            * 350  `type`==`internal`
          maximum: 255000
          minimum: 0
          type: integer
        communities:
          items:
            properties:
              id:
                type: string
              local_preference:
                type: integer
              vpn_name:
                type: string
            type: object
          type: array
        disable_bfd:
          default: false
          description: BFD provides faster path failure detection and is enabled by default
          type: boolean
        export:
          type: string
        export_policy:
          description: default export policies if no per-neighbor policies defined
          type: string
        graceful_restart_time:
          default: 0
          description: "`0` means disable"
          maximum: 4095
          minimum: 0
          type: integer
        hold_time:
          default: 90
          maximum: 65535
          minimum: 0
          type: integer
        import:
          type: string
        import_policy:
          description: default import policies if no per-neighbor policies defined
          type: string
        local_as:
          type: integer
        neighbor_as:
          type: integer
        neighbors:
          additionalProperties:
            properties:
              export_policy:
                type: string
              hold_time:
                default: 90
                maximum: 65535
                minimum: 0
                type: integer
              import_policy:
                type: string
              multihop_ttl:
                description: assuming BGP neighbor is directly connected
                maximum: 255
                minimum: 0
                type: integer
              neighbor_as:
                type: integer
            type: object
          description: if per-neighbor as is desired. Property key is the neighbor address
          type: object
        networks:
          description: if `type`!=`external`or `via`==`wan`networks where we expect BGP neighbor to connect to/from
          items:
            type: string
          type: array
        type:
          enum:
            - internal
            - external
          minLength: 1
          type: string
        via:
          default: lan
          description: network name
          enum:
            - lan
            - wan
          type: string
        vpn_name:
          type: string
        wan_name:
          description: if `via`==`wan`
          type: string
      type: object
      x-examples:
        example-1:
          auth_key: string
          bfd_minimum_interval: 0
          communities:
            - id: string
              local_preference: 0
              vpn_name: string
          export: string
          export_policy: string
          graceful_restart_time: 0
          hold_time: 90
          import: string
          import_policy: string
          local_as: 0
          neighbor_as: 0
          neighbors:
            property1:
              export_policy: string
              hold_time: 90
              import_policy: string
              multihop_ttl: 0
              neighbor_as: 0
            property2:
              export_policy: string
              hold_time: 90
              import_policy: string
              multihop_ttl: 0
              neighbor_as: 0
          networks:
            - string
          type: internal
          via: string
          wan_name: string
    junos_dhcp_snooping:
      description: ""
      properties:
        all_networks:
          type: boolean
        enable_arp_spoof_check:
          description: "Enable for dynamic ARP inspection check "
          type: boolean
        enable_ip_source_guard:
          description: Enable for check for forging source IP address
          type: boolean
        enabled:
          type: boolean
        networks:
          description: if `all_networks`==`false`, list of network with DHCP snooping enabled
          items:
            type: string
          type: array
      type: object
      x-examples:
        example-1:
          all_networks: false
          enable_arp_spoof_check: true
          enable_ip_source_guard: true
          enabled: true
          networks:
            - corp
    junos_dhcpd:
      additionalProperties:
        properties:
          dns_servers:
            description: if `type`==`local` - optional, if not defined, system one will be used
            items:
              type: string
            type: array
          dns_suffix:
            description: if `type`==`local` - optional, if not defined, system one will be used
            items:
              type: string
            type: array
          fixed_bindings:
            additionalProperties:
              properties:
                ip:
                  type: string
                name:
                  type: string
              type: object
            description: The property key is the MAC Address
            type: object
          gateway:
            description: if `type`==`local` - optional, `ip` will be used if not provided
            type: string
          ip_end:
            description: if `type`==`local`
            type: string
          ip_start:
            description: if `type`==`local`
            type: string
          options:
            additionalProperties:
              properties:
                type:
                  enum:
                    - string
                    - boolean
                    - ip
                    - hex
                    - int16
                    - int32
                    - uint16
                    - uint32
                  type: string
                value:
                  type: string
              type: object
            description: Property key is the DHCP option number
            type: object
          servers:
            description: if `type`==`relay`
            items:
              type: string
            type: array
          type:
            default: local
            description: DHCP Server (local) or DHCP Relay (relay)
            enum:
              - local
              - relay
            type: string
          vendor_encapulated:
            additionalProperties:
              properties:
                type:
                  enum:
                    - string
                    - boolean
                    - ip
                    - hex
                    - int16
                    - int32
                    - uint16
                    - uint32
                  type: string
                value:
                  type: string
              type: object
            description: |-
              Property key is <enterprise number>:<sub option code>, with
              * enterprise number: 1-65535  (https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers)
              * sub option code: 1-255, sub-option code
            type: object
        type: object
      description: if DHCP Server/Relay is intended. The property key is the network name
      properties:
        enabled:
          type: boolean
      type: object
      x-examples:
        DHCP Relay:
          value:
            corp:
              servers:
                - 11.2.3.4
              type: relay
            enabled: true
        DHCP Server:
          value:
            corp:
              dns_servers:
                - 8.8.8.8
                - 4.4.4.4
              dns_suffix:
                - .mist.local
                - .mist.com
              fixed_bindings:
                5684dae9ac8b:
                  ip: 192.168.70.35
                  name: John
              gateway: 192.168.70.1
              ip_end: 192.168.70.200
              ip_start: 192.168.70.100
              type: local
            enabled: true
        example-1:
          value:
            enabled: true
            property1:
              dns_servers:
                - string
              dns_suffix:
                - string
              fixed_bindings:
                property1:
                  ip: string
                  name: string
                property2:
                  ip: string
                  name: string
              gateway: string
              ip_end: string
              ip_start: string
              servers:
                - string
              type: local
            property2:
              dns_servers:
                - string
              dns_suffix:
                - string
              fixed_bindings:
                property1:
                  ip: string
                  name: string
                property2:
                  ip: string
                  name: string
              gateway: string
              ip_end: string
              ip_start: string
              servers:
                - string
              type: local
    junos_evpn_config:
      description: EVPN Junos settings
      properties:
        enabled:
          type: boolean
        role:
          enum:
            - core
            - distribution
            - access
          type: string
      type: object
    junos_evpn_options:
      description: EVPN Options
      properties:
        core_as_border:
          default: false
          description: |-
            optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway
            when `routed_at` != `core`, whether to do virtual-gateway at core as well
          type: boolean
        overlay:
          properties:
            as:
              description: optional, these are defaults
              example: 65000
              type: integer
          type: object
        per_vlan_vga_v4_mac:
          default: false
          description: |-
            by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4-mac
            if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
          type: boolean
        routed_at:
          default: edge
          description: optional, where virtual-gateway should reside
          enum:
            - edge
            - core
            - distribution
          type: string
        underlay:
          properties:
            as_base:
              example: 65001
              type: integer
            routed_id_prefix:
              example: /24
              type: string
            subnet:
              example: 10.255.240.0/20
              type: string
          type: object
      type: object
    junos_evpn_topology:
      properties:
        id:
          readOnly: true
          type: string
        name:
          type: string
        pod_names:
          additionalProperties:
            type: string
          description: Property key is the pod number
          type: object
        switches:
          items:
            properties:
              deviceprofile_id:
                example: 6a1deab1-96df-4fa2-8455-d5253f943d06
                type: string
              downlink_ips:
                items:
                  type: string
                readOnly: true
                type: array
              downlinks:
                items:
                  type: string
                readOnly: true
                type: array
              esilaglinks:
                items:
                  type: string
                type: array
              evpn_id:
                type: integer
              mac:
                minLength: 1
                type: string
              pod:
                default: 1
                description: |-
                  optionally, for distribution / access / esilag-access, they can be placed into different pods.
                  e.g. 
                  * for CLOS, to group dist / access switches into pods
                  * for ERB/CRB, to group dist / esilag-access into pods
                maximum: 255
                minimum: 1
                type: integer
              role:
                description: use `role`==`none` to remove a switch from the topology
                enum:
                  - core
                  - distribution
                  - access
                  - collapsed-core
                  - none
                  - esilag-access
                minLength: 1
                type: string
              site_id:
                example: 1916d52a-4a90-11e5-8b45-1258369c38a9
                type: string
              uplinks:
                items:
                  type: string
                readOnly: true
                type: array
            type: object
          type: array
          uniqueItems: true
      required:
        - switches
      title: junos_evpn_topology
      type: object
      x-examples:
        example-1:
          id: string
          name: string
          pod_names:
            property1: string
            property2: string
          switches:
            - deviceprofile_id: 6a1deab1-96df-4fa2-8455-d5253f943d06
              downlink_ips:
                - string
              downlinks:
                - string
              esilaglinks:
                - string
              evpn_id: 0
              mac: string
              pod: 1
              role: core
              site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
              uplinks:
                - string
    junos_idp_config:
      description: ""
      properties:
        alert_only:
          type: string
        enabled:
          default: false
          type: boolean
        profile:
          default: strict
          enum:
            - strict
            - standard
          type: string
      type: object
    junos_ip_config:
      description: Junos IP Config
      properties:
        dns:
          items:
            type: string
          type: array
        dns_suffix:
          items:
            type: string
          type: array
        gateway:
          type: string
        ip:
          type: string
        netmask:
          description: used only if `subnet` is not specified in `networks`
          type: string
        network:
          description: the network where this mgmt IP reside, this will be used as default network for outbound-ssh, dns, ntp, dns, tacplus, radius, syslog, snmp
          type: string
        type:
          default: dynamic
          enum:
            - static
            - dynamic
          type: string
        use_mgmt_vrf:
          default: false
          description: for host-out traffic (NTP/TACPLUS/RADIUS/SYSLOG/SNMP)
          type: boolean
      type: object
      x-examples:
        example-1:
          dns:
            - {}
          dns_suffix:
            - {}
          gateway: string
          ip: string
          netmask: string
          network: string
          type: string
    junos_ip_config_gateway:
      description: Junos IP Config
      properties:
        dns:
          description: except for out-of-band interface (vme/em0/fxp0)
          items:
            type: string
          type: array
        dns_suffix:
          description: except for out-of-band interface (vme/em0/fxp0)
          items:
            type: string
          type: array
        gateway:
          description: except for out-of-band interface (vme/em0/fxp0)
          type: string
        ip:
          type: string
        netmask:
          description: used only if `subnet` is not specified in `networks`
          type: string
        network:
          description: optional, the network to be used for mgmt
          type: string
        poser_password:
          description: if `type`==`pppoe`
          type: string
        ppoe_username:
          description: if `type`==`pppoe`
          type: string
        pppoe_auth:
          default: none
          description: if `type`==`pppoe`
          enum:
            - none
            - chap
            - pap
          type: string
        type:
          default: dhcp
          enum:
            - dhcp
            - static
            - ppoe
          type: string
      type: object
      x-examples:
        example-1:
          dns:
            - {}
          dns_suffix:
            - {}
          gateway: string
          ip: string
          netmask: string
          network: string
          type: string
    junos_networks:
      description: A network represents a network segment. It can either represent a VLAN (then usually ties to a L3 subnet), optionally associate it with a subnet which can later be used to create addition routes. Used for ports doing `family ethernet-switching`. It can also be a pure L3-subnet that can then be used against a port that with `family inet`.
      properties:
        dns:
          items:
            type: string
          type: array
        dns_suffix:
          items:
            type: string
          type: array
        gateway:
          type: string
        ospf_interface_type:
          type: string
        subnet:
          description: optional for pure switching, required when L3 / routing features are used
          type: string
        vlan_id:
          type: integer
        zone:
          description: used for gateway
          type: string
      required:
        - vlan_id
      type: object
      x-examples:
        example-1:
          corp:
            subnet: 192.168.70.0/24
            vlan_id: 60
            zone: trust
          dedicated:
            ospf_interface_type: p2p
            subnet: 10.18.14.72/30
          default:
            vlan_id: 1
            zone: trust
          it_mgmt:
            subnet: 192.168.70.0/24
            zone: trust
          wan:
            zone: untrust
    junos_oob_ip_config:
      additionalProperties:
        description: |-
          - If HA configuration: key parameter will be nodeX (eg: node1)
          - If there are 2 routing engines, re1 mgmt IP has to be set separately (if desired): key parameter = `re1`
        properties:
          ip:
            type: string
          netmask:
            description: used only if `subnet` is not specified in `networks`
            type: string
          network:
            description: optional, the network to be used for mgmt
            type: string
          type:
            default: dynamic
            enum:
              - static
              - dynamic
            type: string
        type: object
      description: Junos out-of-band (vme/em0/fxp0) IP config
      properties:
        dns:
          items:
            type: string
          type: array
        dns_suffix:
          items:
            type: string
          type: array
        gateway:
          type: string
        ip:
          type: string
        netmask:
          description: used only if `subnet` is not specified in `networks`
          type: string
        network:
          description: optional, the network to be used for mgmt
          type: string
        node1:
          description: for HA Cluster, node1 can have different IP Config
          properties:
            ip:
              type: string
            netmask:
              description: used only if `subnet` is not specified in `networks`
              type: string
            network:
              description: optional, the network to be used for mgmt
              type: string
            type:
              default: dynamic
              enum:
                - static
                - dynamic
              type: string
            use_mgmt_vrf:
              default: false
              description: if supported on the platform. If enabled, DNS will be using this routing-instance, too
              type: boolean
            use_mgmt_vrf_for_host_out:
              default: false
              description: whether to use `mgmt_junos` for host-out traffic (NTP/TACPLUS/RADIUS/SYSLOG/SNMP), if alternative service is desired
              type: boolean
            vlan_id:
              description: optional, if different from parent
              type: integer
          type: object
        type:
          default: dynamic
          enum:
            - static
            - dynamic
          type: string
        use_mgmt_vrf:
          default: false
          description: if supported on the platform. If enabled, DNS will be using this routing-instance, too
          type: boolean
        use_mgmt_vrf_for_host_out:
          default: false
          description: whether to use `mgmt_junos` for host-out traffic (NTP/TACPLUS/RADIUS/SYSLOG/SNMP), if alternative service is desired
          type: boolean
        vlan_id:
          type: integer
      type: object
      x-examples:
        Example 1:
          dns:
            - string
          dns_suffix:
            - string
          gateway: string
          ip: string
          netmask: string
          network: string
          property1:
            ip: string
            netmask: string
            network: string
            type: dynamic
          property2:
            ip: string
            netmask: string
            network: string
            type: dynamic
          type: dynamic
          use_mgmt_vrf: false
          use_mgmt_vrf_for_host_outbound_traffic: false
    junos_ospf_areas:
      description: Junos OSPF areas
      properties:
        networks:
          additionalProperties:
            properties:
              auth_keys:
                additionalProperties:
                  type: string
                description: if `auth_type`==`md5`. The property key is the key number
                type: object
              auth_password:
                description: if `auth_type`==`password`, the password, max length is 8
                type: string
              auth_type:
                default: none
                description: auth type
                enum:
                  - none
                  - md5
                  - password
                type: string
              dead_interval:
                maximum: 65535
                minimum: 1
                type: integer
              hello_interval:
                maximum: 255
                minimum: 1
                type: integer
              interface_type:
                default: nbma
                description: interface type (nbma = non-broadcast multi-access)
                enum:
                  - nbma
                  - p2p
                  - p2mp
                type: string
              passive:
                default: false
                description: whether to send OSPF-Hello
                type: boolean
            type: object
          description: networks to participate in an OSPF area. The property key is the network name
          type: object
        type:
          default: default
          description: OSPF type, default (default) / stub / nssa
          enum:
            - default
            - stub
            - nssa
          type: string
      type: object
      x-examples:
        example-1:
          networks:
            "{network_name}":
              auth_keys:
                "{key}": string
              auth_password: string
              auth_type: none
              interface_type: nbma
              passive: true
          type: default
    junos_ospf_config:
      description: Junos OSPF config
      properties:
        areas:
          additionalProperties:
            properties:
              no_summary:
                description: for a stub/nssa area, where to avoid forwarding type-3 LSA to this area
                type: boolean
            type: object
          description: OSPF areas to run on this device and the corresponding per-area-specific configs. The property key is the area
          type: object
        enabled:
          description: whether to rung OSPF on this device
          type: boolean
      type: object
      x-examples:
        example-1:
          areas:
            "0":
              no_summary: false
          enabled: true
    junos_other_ip_configs:
      description: optional, if it's required to have switch's L3 presense on a network/vlan
      properties:
        evpn_anycast:
          default: false
          description: for EVPN, if anycast is desired
          type: boolean
        ip:
          description: required if `type`==`static`
          type: string
        netmask:
          description: "optional, `subnet` from `network` definition will be used if defined  "
          type: string
        type:
          default: dhcp
          enum:
            - static
            - dhcp
          type: string
      type: object
      x-examples:
        example-1:
          ip: string
          netmask: string
          type: static
    junos_port_config:
      description: Switch port config
      properties:
        ae_disable_lacp:
          description: To disable LACP support for the AE interface
          type: boolean
        ae_idx:
          description: Users could force to use the designated AE name
          type: integer
        aggregated:
          default: false
          type: boolean
        critical:
          description: if want to generate port up/down alarm
          type: boolean
        description:
          type: string
        disable_autoneg:
          default: false
          description: if `speed` and `duplex` are specified, whether to disable autonegotiation
          type: boolean
        duplex:
          default: auto
          enum:
            - auto
            - full
            - half
          type: string
        dynamic_usage:
          description: Enable dynamic usage for this port. Set to `dynamic` to enable.
          nullable: true
          type: string
        esilag:
          type: boolean
        mtu:
          default: 1514
          description: media maximum transmission unit (MTU) is the largest data unit that can be forwarded without fragmentation
          type: integer
        no_local_overwrite:
          description: prevent helpdesk to override the port config
          type: boolean
        poe_disabled:
          default: false
          type: boolean
        speed:
          default: auto
          enum:
            - auto
            - 10m
            - 100m
            - 1g
            - 2.5g
            - 5g
          type: string
        usage:
          description: |-
            port usage name. 

            If EVPN is used, use `evpn_uplink`or `evpn_downlink`
          type: string
      required:
        - usage
      type: object
      x-examples:
        example-1:
          ae_disable_lacp: false
          ae_idx: 0
          aggregated: true
          description: to dist-sw-01
          usage: uplink
        example-3:
          usage: ap
        example-dynamic:
          dynamic_usage: dynamic
          usage: default
    junos_port_config_gateway:
      description: Gateway port config
      properties:
        description:
          type: string
        disable_autoneg:
          default: false
          type: boolean
        dsl_config:
          description: if `wan_type`==`dsl`
          properties:
            ppoe_auth:
              default: none
              enum:
                - none
                - chap
                - pap
              type: string
            ppoe_password:
              type: string
            ppoe_username:
              type: string
          type: object
        duplex:
          default: auto
          enum:
            - half
            - full
            - auto
          example: full
          type: string
        ip_config:
          $ref: "#/components/schemas/junos_ip_config_gateway"
        lte_apn:
          description: if `wan_type`==`lte`
          type: string
        lte_auth:
          default: none
          description: if `wan_type`==`lte`
          enum:
            - none
            - chap
            - pap
          type: string
        lte_backup:
          type: boolean
        lte_password:
          description: if `wan_type`==`lte`
          type: string
        lte_username:
          description: if `wan_type`==`lte`
          type: string
        mtu:
          type: integer
        name:
          description: name that we'll use to derive config
          type: string
        networks:
          description: if `usage`==`lan`
          items:
            type: string
          type: array
        outer_vlan_id:
          description: for Q-in-Q
          type: integer
        poe_disabled:
          default: false
          type: boolean
        port_network:
          description: if `usage`==`lan`
          type: string
        preserve_dscp:
          default: true
          description: whether to preserve dscp when sending traffic over VPN (SSR-only)
          type: boolean
        redundant:
          description: if HA mode
          type: boolean
        reth_idx:
          description: if HA mode
          type: integer
        reth_node:
          description: if HA mode
          type: string
        speed:
          default: auto
          example: 1g
          type: string
        svr_port_range:
          description: For 128T only
          example: 60000-60005
          type: string
        traffic_shaping:
          properties:
            class_percentages:
              description: |-
                percentages for differet class of traffic: high / medium / low / best-effort
                sum must be equal to 100
              items:
                type: integer
              type: array
            enabled:
              default: false
              type: boolean
          type: object
        usage:
          description: port usage name
          enum:
            - lan
            - wan
            - ha_data
            - ha_control
          type: string
        vlan_id:
          description: if WAN interface is on a VLAN
          type: integer
        vpn_paths:
          additionalProperties:
            properties:
              bfd_profile:
                default: broadband
                enum:
                  - lte
                  - broadband
                type: string
              bfd_udp_transform:
                default: false
                type: boolean
              role:
                default: spoke
                enum:
                  - spoke
                  - hub
                type: string
              traffic_shaping:
                properties:
                  class_percentage:
                    description: |-
                      percentages for differet class of traffic: high / medium / low / best-effort
                      sum must be equal to 100
                    items:
                      type: integer
                    type: array
                  enabled:
                    type: boolean
                  max_tx_kbps:
                    type: integer
                type: object
            type: object
          type: object
        wan_ext_ip:
          description: optional, if spoke should reach this port by a different IP
          type: string
        wan_source_nat:
          description: optional, by default, source-NAT is performed on all WAN Ports using the interface-ip
          properties:
            disabled:
              default: false
              description: or to disable the source-nat
              type: boolean
            nat_pool:
              description: if alternative nat_pool is desired
              example: 64.2.4.0/30
              type: string
          type: object
        wan_type:
          default: broadband
          description: if `usage`==`wan`
          enum:
            - broadband
            - dsl
            - lte
          type: string
      required:
        - usage
      type: object
      x-examples:
        LAN:
          networks:
            - default
            - guest
            - pos
          port_network: default
          usage: lan
        LTE:
          ip_config:
            type: dhcp
          lte_apn: 5ginternet
          lte_backup: false
          usage: wan
          wan_type: lte
        PPOE:
          ip_config:
            pppoe_password: foryoureyesonly
            pppoe_username: u13534
            type: ppoe
          peers:
            - 12.35.68.35
          usage: wan
          wan_type: broadband
        VPN:
          vpns:
            data-center:
              links:
                - wan0
              role: spoke
    junos_port_mirror:
      properties:
        egress_port_ids:
          description: at least one of `ingress_port_ids`,`egress_port_ids` or `ingress_networks` should be specified
          items:
            example: ge-0/0/3
            type: string
          type: array
        filter:
          type: object
        ingress_networks:
          description: at least one of `ingress_port_ids`,`egress_port_ids` or `ingress_networks` should be specified
          items:
            example: corp
            type: string
          type: array
        ingress_port_ids:
          description: at least one of `ingress_port_ids`,`egress_port_ids` or `ingress_networks` should be specified
          items:
            example: ge-0/0/3
            type: string
          type: array
        output_network:
          example: analyze
          type: string
        output_port_id:
          description: only one of of `output_port_id` or `output_network` should be specified
          example: ge-0/0/5
          type: string
      type: object
      x-examples:
        Example 1:
          egress_port_ids:
            - ge-0/0/3
          filter: {}
          ingress_networks:
            - corp
          ingress_port_ids:
            - ge-0/0/3
          output_network: analyze
          output_port_id: ge-0/0/5
    junos_port_mirroring:
      properties:
        egress_port_ids:
          description: at least one of the `ingress_port_ids`, `egress_port_ids` or `ingress_networks ` should be specified
          items:
            example: ge-0/0/3
            type: string
          type: array
        ingress_networks:
          description: at least one of the `ingress_port_ids`, `egress_port_ids` or `ingress_networks ` should be specified
          items:
            example: corp
            type: string
          type: array
        ingress_port_ids:
          description: at least one of the `ingress_port_ids`, `egress_port_ids` or `ingress_networks ` should be specified
          items:
            example: ge-0/0/3
            type: string
          type: array
        output_network:
          example: analyze
          type: string
        output_port_id:
          description: exaclty on of the `output_port_id` or `output_network` should be provided
          example: ge-0/0/5
          type: string
      type: object
      x-examples:
        Example 1:
          egress_port_ids:
            - ge-0/0/3
          ingress_port_ids:
            - ge-0/0/3
          output_port_id: ge-0/0/5
    junos_port_usages:
      description: Junos port usages
      properties:
        all_networks:
          default: false
          description: if `mode`==`trunk`, whether to trunk all network/vlans
          type: boolean
        allow_dhcpd:
          description: |-
            if DHCP snooping is enabled, whether DHCP server is allowed on the interfaces with. All the interfaces from port configs using this port usage are effected. Please notice that allow_dhcpd is a tri-state.

            When it is not defined, it means using the system’s default setting which depends on whether the port is a access or trunk port.
          type: boolean
        bypass_auth_when_server_down:
          description: if `port_auth`==`dot1x`, whether to allow the device to connect if RADIUS server is down
          type: boolean
        description:
          description: description
          type: string
        disable_autoneg:
          default: false
          description: if speed and duplex are specified, whether to disable autonegotiation
          type: boolean
        disabled:
          default: false
          description: whether the port is disabled
          type: boolean
        duplex:
          default: auto
          description: link connection mode, choices are auto (default), full, and half
          enum:
            - half
            - full
            - auto
          type: string
        enable_mac_auth:
          description: if `port_auth`==`dot1x`, whether to enable MAC Auth
          type: boolean
        enable_qos:
          type: boolean
        guest_network:
          description: if `port_auth`==`dot1x`, which network to put the device into if the device cannot do dot1x. default is null (i.e. not allowed)
          type: string
        mac_auth_only:
          description: only effect once `enable_mac_auth`==`true`
          type: boolean
        mac_limit:
          default: 0
          description: max number of mac addresses, default is 0 for unlimited, otherwise range is 1 or higher, with upper bound constrained by platform
          minimum: 0
          type: integer
        mode:
          description: access (default) / trunk
          enum:
            - access
            - trunk
            - inet
            - wan
          type: string
        mtu:
          description: media maximum transmission unit (MTU) is the largest data unit that can be forwarded without fragmentation. The default value is 1514.
          type: integer
        networks:
          description: if `mode`==`trunk`, the list of network/vlans
          items:
            type: string
          type: array
        persist_mac:
          default: false
          description: if `mode`==`access` and `port_auth`!=`dot1x`, whether the port should retain dynamically learned MAC addresses
          type: boolean
        poe_disabled:
          default: false
          description: whether PoE capabilities are disabled for a port
          type: boolean
        port_auth:
          description: if dot1x is desired, set to dot1x
          type: string
        port_network:
          description: native network/vlan for untagged traffic
          type: string
        rejected_network:
          description: if `port_auth`==`dot1x`, when radius server reject / fails
          type: boolean
        speed:
          description: speed, default is auto to automatically negotiate speed
          type: string
        storm_control:
          $ref: "#/components/schemas/junos_storm_control"
        stp_edge:
          description: when enabled, the port is not expected to receive BPDU frames
          type: boolean
        voip_network:
          description: network/vlan for voip traffic, must also set port_network. to authenticate device, set port_auth
          type: string
      type: object
      x-examples:
        example-1:
          all_networks: true
          bypass_auth_when_server_down: true
          description: string
          disable_autoneg: true
          disabled: true
          duplex: half
          enable_mac_auth: true
          guest_network: string
          mac_limit: 0
          mode: access
          mtu: 0
          networks:
            - string
          poe_disabled: true
          port_auth: string
          port_network: string
          speed: string
          storm_control: {}
          stp_edge: true
          voip_network: string
    junos_port_usages_dynamic:
      description: This is a special mode where the actually usage is determined by a set of rules the port will start with `access` mode and isolated depending on the rules, if resolved, the port will have the resolved usage applied.
      properties:
        mode:
          default: dynamic
          enum:
            - dynamic
          type: string
        reset_default_when:
          default: link_down
          description: |-
            Control when the DPC port should be changed to the default port usage
            Configuring to none will let the DPC port keep at the current port usage.
          enum:
            - none
            - link_down
          type: string
        rules:
          items:
            properties:
              equals:
                type: string
              equals_any:
                description: use `equals_any` to match any item in a list
                items:
                  type: string
                type: array
              expression:
                description: |-
                  "[0:3]":"abcdef" -> "abc"
                  "split(.)[1]": "a.b.c" -> "b"
                  "split(-)[1][0:3]: "a1234-b5678-c90" -> "b56"
                type: string
              src:
                enum:
                  - lldp_chassis_id
                  - lldp_system_name
                  - lldp_serial_number
                  - lldp_hardware_revision
                  - lldp_manufacturer_name
                  - lldp_oui
                  - radius_username
                  - radius_usermac
                  - radius_dynamicfilter
                  - link_peermac
                type: string
              usage:
                description: "`port_usage` name"
                type: string
            required:
              - src
            type: object
          type: array
      required:
        - mode
      title: ""
      type: object
      x-examples:
        example-1:
          all_networks: true
          bypass_auth_when_server_down: true
          description: string
          disable_autoneg: true
          disabled: true
          duplex: half
          enable_mac_auth: true
          guest_network: string
          mac_limit: 0
          mode: access
          mtu: 0
          networks:
            - string
          poe_disabled: true
          port_auth: string
          port_network: string
          speed: string
          storm_control: {}
          stp_edge: true
          voip_network: string
    junos_radius_config:
      description: Junos Radius config
      properties:
        acct_interim_interval:
          default: 0
          description: how frequently should interim accounting be reported, 60-65535. default is 0 (use one specified in Access-Accept request from RADIUS Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled
          maximum: 65535
          minimum: 0
          type: integer
        acct_servers:
          items:
            $ref: "#/components/schemas/acct_server"
          minItems: 1
          type: array
          uniqueItems: true
        auth_servers:
          items:
            $ref: "#/components/schemas/auth_server"
          minItems: 1
          type: array
          uniqueItems: true
        auth_servers_retries:
          default: 3
          description: radius auth session retries
          type: integer
        auth_servers_timeout:
          default: 5
          description: radius auth session timeout
          type: integer
        coa_enabled:
          default: false
          type: boolean
        coa_port:
          default: 3799
          type: integer
        network:
          description: |-
            use `network`or `source_ip`
            which network the RADIUS server resides, if there's static IP for this network, we'd use it as source-ip
          type: string
        source_ip:
          description: use `network`or `source_ip`
          type: string
      type: object
      x-examples:
        example-1:
          acct_interim_interval: 0
          acct_servers:
            - host: 1.2.3.4
              port: 1812
              secret: testing123
          auth_servers:
            - host: 1.2.3.4
              port: 1812
              secret: testing123
            - host: radius.internal
              port: 1812
              secret: testing123
          auth_servers_retries: 3
          auth_servers_timeout: 5
    junos_routing_policy:
      properties:
        terms:
          description: zero or more criteria/filter can be specified to match the term, all criteria have to be met
          items:
            properties:
              action:
                description: when used as import policy
                properties:
                  accept:
                    type: boolean
                  community:
                    description: when used as export policy, optional
                    items:
                      example: 65003:10
                      type: string
                    type: array
                  exclude_as_path:
                    description: "when used as export policy, optional. To exclude certain AS "
                    items:
                      example: "65002"
                      type: string
                    type: array
                  export_communitites:
                    description: when used as export policy, optional
                    items:
                      type: string
                    type: array
                  local_preference:
                    description: optional, for an import policy, local_preference can be changed
                    type: string
                  prepend_as_path:
                    description: when used as export policy, optional. By default, the local AS will be prepended, to change it
                    items:
                      example: "65003"
                      type: string
                    type: array
                  summarize:
                    description: for an export policy, summarization/aggregation can be added
                    example: 192.168.0.0/16
                    type: string
                type: object
              matching:
                description: zero or more criteria/filter can be specified to match the term, all criteria have to be met
                properties:
                  as_path:
                    description: takes regular expression
                    items:
                      example: "65001"
                      type: string
                    type: array
                  community:
                    items:
                      example: 65001:2
                      type: string
                    type: array
                  network:
                    items:
                      type: string
                    type: array
                  prefix:
                    description: zero or more criteria/filter can be specified to match the term, all criteria have to be met
                    items:
                      example: 192.168.0.0/16-30
                      type: string
                    type: array
                  protocol:
                    description: "`direct`, `bgp`, `osp`, ..."
                    items:
                      example: direct
                      type: string
                    type: array
                  route_exists:
                    properties:
                      route:
                        example: 192.168.0.0/24
                        type: string
                      vrf_name:
                        default: default
                        description: |-
                          name of the vrf instance
                          it can also be the name of the VPN or wan if they
                        type: string
                    type: object
                  vpn_name:
                    description: for a lan/wan bgp_config's export policy to vpn/overlay
                    items:
                      type: string
                    type: array
                  vpn_path:
                    description: for a vpn bgp_config's import policy (usually on spoke)
                    items:
                      type: string
                    type: array
                type: object
            type: object
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          terms:
            - action:
                accept: true
                community:
                  - 65003:10
                exclude_as_path:
                  - "65002"
                export_communitites:
                  - string
                local_preference: string
                prepend_as_path:
                  - "65003"
              matching:
                as_path:
                  - "65001"
                community:
                  - 65001:2
                network:
                  - string
                prefix:
                  - 192.168.0.0/16-30
                protocol:
                  - direct
                route_exists:
                  route: 192.168.0.0/24
                  vrf_name: default
    junos_snmp_config:
      properties:
        client_list:
          items:
            properties:
              client_list_name:
                example: clist-1
                type: string
              clients:
                items:
                  example: 151.140.101.218/32
                  type: string
                type: array
            type: object
          type: array
        contact:
          example: cns@juniper.net
          type: string
        description:
          example: Juniper QFX Series Switch - 1K_5LA
          type: string
        enabled:
          default: true
          type: boolean
        engine_id:
          enum:
            - local
            - engine-id-suffix
            - use-default-ip-address
            - use-mac-address
          type: string
        location:
          example: Las Vegas, NV
          type: string
        name:
          example: TGH-1K-QFX10K
          type: string
        trap_groups:
          items:
            properties:
              categories:
                items:
                  example: authentication
                  type: string
                type: array
              group_name:
                description: Categories list can refer to https://www.juniper.net/documentation/software/topics/task/configuration/snmp-trap-groups-configuring-junos-nm.html
                example: profiler
                type: string
              targets:
                items:
                  example: 172.29.158.19
                  type: string
                type: array
              version:
                default: v2
                enum:
                  - v1
                  - v2
                  - all
                type: string
            type: object
          type: array
        v2c_config:
          items:
            properties:
              authorization:
                example: read-only
                type: string
              client_list_name:
                description: client_list_name here should refer to client_list above
                example: clist-1
                type: string
              community_name:
                example: abc123
                type: string
              view:
                description: view name here should be defined in views above
                example: all
                type: string
            type: object
          type: array
        v3_config:
          properties:
            notify:
              items:
                properties:
                  name:
                    type: string
                  tag:
                    type: string
                  type:
                    enum:
                      - trap
                      - inform
                    type: string
                type: object
              type: array
            notify_filter:
              items:
                properties:
                  contents:
                    items:
                      properties:
                        include:
                          type: boolean
                        oid:
                          example: 1.3.6.1.4.1
                          type: string
                      type: object
                    type: array
                  profile_name:
                    type: string
                type: object
              type: array
            target_address:
              items:
                properties:
                  address:
                    type: string
                  address_mask:
                    type: string
                  port:
                    default: 161
                    type: integer
                  tag_list:
                    description: <refer to notify tag, can be multiple with blank
                    type: string
                  target_address_name:
                    type: string
                  target_parameters:
                    description: refer to notify target parameters name
                    type: string
                type: object
              type: array
            target_parameters:
              items:
                properties:
                  message_processing_model:
                    enum:
                      - v1
                      - v2c
                      - v3
                    type: string
                  name:
                    type: string
                  notify_filter:
                    description: refer to profile-name in notify-filter
                    type: string
                  security_level:
                    enum:
                      - authentication
                      - none
                      - privacy
                    type: string
                  security_model:
                    enum:
                      - usm
                      - v1
                      - v2c
                    type: string
                  security_name:
                    description: refer to security_name in usm
                    example: m01620
                    type: string
                type: object
              type: array
            usm:
              properties:
                engine-id:
                  description: required only if `engine_type`==`remote_engine`
                  example: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
                  type: string
                engine_type:
                  enum:
                    - remote_engine
                    - local_engine
                  type: string
                users:
                  items:
                    properties:
                      authentication_password:
                        description: |-
                          Not required if `authentication_type`==`authentication-none`
                          include alphabetic, numeric, and special characters, but it cannot include control characters. 
                        minLength: 7
                        type: string
                      authentication_type:
                        description: sha224, sha256, sha384, sha512 are supported in 21.1 and newer release
                        enum:
                          - authentication-md5
                          - authentication-sha
                          - authentication-sha224
                          - authentication-sha256
                          - authentication-sha384
                          - authentication-sha512
                          - authentication-none
                        type: string
                      encryption_password:
                        description: |-
                          Not required if `encryption_type`==`privacy-none`
                          include alphabetic, numeric, and special characters, but it cannot include control characters
                        minLength: 8
                        type: string
                      encryption_type:
                        enum:
                          - privacy-aes128
                          - privacy-des
                          - privacy-3des
                          - privacy-none
                        type: string
                      name:
                        type: string
                    type: object
                  type: array
              type: object
            vacm:
              properties:
                access:
                  items:
                    properties:
                      group_name:
                        type: string
                      prefix_list:
                        items:
                          properties:
                            context_prefix:
                              description: only required if `type`==`context_prefix`
                              example: iil
                              type: string
                            notify_view:
                              description: refer to view name
                              example: all
                              type: string
                            read_view:
                              description: refer to view name
                              example: all
                              type: string
                            security_level:
                              enum:
                                - privacy
                                - authentication
                                - none
                              type: string
                            security_model:
                              enum:
                                - any
                                - usm
                                - v1
                                - v2c
                              type: string
                            type:
                              enum:
                                - default_context_prefix
                              type: string
                            write_view:
                              description: refer to view name
                              example: all
                              type: string
                          type: object
                        type: array
                    type: object
                  type: array
                security_to_group:
                  properties:
                    content:
                      items:
                        properties:
                          group:
                            description: refer to group_name under access
                            type: string
                          security_name:
                            type: string
                        type: object
                      type: array
                    security_model:
                      enum:
                        - usm
                        - v1
                        - v2c
                      type: string
                  type: object
              type: object
          type: object
        views:
          properties:
            include:
              description: if the root oid configured is included
              type: boolean
            oid:
              example: 1.3.6.1
              type: string
            view_name:
              example: all
              type: string
          type: object
      type: object
      x-examples:
        example-1:
          client_list:
            - client_list_name: clist-1
              clients:
                - 151.140.101.218/32
          contact: cns@juniper.net
          description: Juniper QFX Series Switch - 1K_5LA
          engine_id: local
          location: Las Vegas, NV
          name: TGH-1K-QFX10K
          trap_groups:
            - categories:
                - authentication
              group_name: profiler
              targets:
                - 172.29.158.19
              version: v2
          v2c_config:
            - authorization: read-only
              client_list_name: clist-1
              community_name: abc123
          v3_config:
            notify:
              - name: string
                tag: string
                type: trap
            notify_filter:
              - contents:
                  - include: true
                    oid: 1.3.6.1.4.1
                profile_name: string
            target_address:
              - address: string
                address_mask: string
                port: 161
                tag_list: string
                target_address_name: string
                target_parameters: string
            target_parameters:
              - message_processing_model: v1
                name: string
                notify_filter: string
                security_level: authentication
                security_model: usm
                security_name: m01620
            usm:
              engine-id: 00:00:00:0b:00:00:70:10:6f:08:b6:3f
              engine_type: remote_engine
              users:
                - authentication_password: strings
                  authentication_type: authentication-md5
                  encryption_password: stringst
                  encryption_type: privacy-aes128
                  name: string
            vacm:
              access:
                - group_name: string
                  prefix_list:
                    - context_prefix: iil
                      notify_view: all
                      read_view: all
                      security_level: privacy
                      security_model: any
                      type: default_context_prefix
                      write_view: all
              security_to_group:
                content:
                  - group: string
                    security_name: string
                security_model: usm
          views:
            include: true
            oid: 1.3.6.1
            view_name: all
    junos_storm_control:
      description: Switch storm control
      properties:
        no_broadcast:
          default: false
          description: whether to disable storm control on broadcast traffic
          type: boolean
        no_multicast:
          default: false
          description: whether to disable storm control on multicast traffic
          type: boolean
        no_registered_multicast:
          default: false
          description: whether to disable storm control on registered multicast traffic
          type: boolean
        no_unknown_unicast:
          default: false
          description: whether to disable storm control on unknown unicast traffic
          type: boolean
        percentage:
          default: 80
          description: bandwidth-percentage, configures the storm control level as a percentage of the available bandwidth
          maximum: 100
          minimum: 0
          type: integer
      type: object
    junos_vrf_config:
      properties:
        enabled:
          description: whether to enable VRF (when supported on the device)
          type: boolean
      title: junos_vrf_config
      type: object
    junos_vrf_instance:
      description: ""
      properties:
        extra_routes:
          additionalProperties:
            description: The property key is a CIDR
            properties:
              via:
                format: ipv4
                type: string
            type: object
          type: object
        networks:
          items:
            type: string
          type: array
      required:
        - networks
        - extra_routes
      type: object
      x-examples:
        example-1:
          extra_routes:
            property1:
              via: 192.168.0.1
            property2:
              via: 192.168.0.1
          networks:
            - string
    junos_vrrp_config:
      description: Junos VRRP config
      properties:
        enabled:
          type: boolean
        groups:
          properties:
            "{vrrp_group}":
              properties:
                priority:
                  type: integer
              type: object
          type: object
      type: object
      x-examples:
        example-1:
          enabled: true
          groups:
            "0":
              priority: 200
    junos_vrrp_group:
      description: Junos VRRP group
      properties:
        auth_key:
          description: if `auth_type`==`md5`
          type: string
        auth_password:
          description: if `auth_type`==`simple`
          type: string
        auth_type:
          default: md5
          enum:
            - md5
            - simple
          type: string
        networks:
          additionalProperties:
            properties:
              ip:
                type: string
            type: object
          description: The property key is the network name
          type: object
      type: object
      x-examples:
        example-1:
          auth_key: string
          auth_password: string
          auth_type: none
          networks:
            "{network_name}":
              ip: string
    license:
      description: License
      properties:
        amendments:
          items:
            properties:
              created_time:
                type: number
              end_time:
                readOnly: true
                type: integer
              id:
                readOnly: true
                type: string
              modified_time:
                type: number
              quantity:
                readOnly: true
                type: integer
              start_time:
                readOnly: true
                type: integer
              subscription_id:
                readOnly: true
                type: string
              type:
                enum:
                  - SUB-MAN
                  - SUB-AST
                  - SUB-VNA
                  - SUB-DATA
                  - SUB-ENG
                  - SUB-PMA
                  - SUB-EX12
                  - SUB-EX24
                  - SUB-EX48
                  - SUB-SVNA
                  - SUB-ME
                  - SUB-WAN1
                  - SUB-WAN2
                  - SUB-WVNA1
                  - SUB-WVNA2
                  - SUB-SRX1
                  - SUB-SRX2
                readOnly: true
                type: string
            readOnly: true
            type: object
          readOnly: true
          type: array
          uniqueItems: true
        entitled:
          additionalProperties:
            type: integer
          description: Property key is license type (e.g. SUB-MAN)  and Property value is the number of licenses entitled.
          readOnly: true
          type: object
        licenses:
          description: list of registered licenses
          items:
            properties:
              created_time:
                type: number
              end_time:
                description: end date of the license term
                readOnly: true
                type: integer
              id:
                format: uuid
                type: string
              modified_time:
                type: number
              order_id:
                readOnly: true
                type: string
              org_id:
                format: uuid
                type: string
              quantity:
                description: number of devices entitled for this license
                readOnly: true
                type: integer
              remaining_quantity:
                description: Number of licences left in this subscription
                type: integer
              start_time:
                description: start date of the license term
                readOnly: true
                type: integer
              subscription_id:
                readOnly: true
                type: string
              type:
                enum:
                  - SUB-MAN
                  - SUB-AST
                  - SUB-VNA
                  - SUB-DATA
                  - SUB-ENG
                  - SUB-PMA
                  - SUB-EX12
                  - SUB-EX24
                  - SUB-EX48
                  - SUB-SVNA
                  - SUB-ME
                  - SUB-WAN1
                  - SUB-WAN2
                  - SUB-WVNA1
                  - SUB-WVNA2
                  - SUB-SRX1
                  - SUB-SRX2
                readOnly: true
                type: string
            readOnly: true
            type: object
          readOnly: true
          type: array
          uniqueItems: true
        summary:
          additionalProperties:
            type: integer
          description: Property key is license type (e.g. SUB-MAN) and Property value is the number of licenses consumed.
          readOnly: true
          type: object
      type: object
      x-examples:
        example-1:
          amendments:
            - created_time: 1644684842
              end_time: 1744156799
              id: ff0a14f6-1234-5678-90ab-c8e64d4bc6c6
              modified_time: 1644684842
              quantity: -1
              start_time: 1632873600
              subscription_id: VNA-000000af
              type: SUB-VNA
            - created_time: 1644684842
              end_time: 1744156799
              id: c1c28812-1234-5678-90ab-dc95680da61e
              modified_time: 1644684842
              quantity: -1
              start_time: 1632873600
              subscription_id: MAN-000008be
              type: SUB-MAN
            - created_time: 1644684842
              end_time: 1744243199
              id: 96c0a41f-1234-5678-90ab-afe74817e9fd
              modified_time: 1644684842
              quantity: -1
              start_time: 1586476800
              subscription_id: EX24-000000bc
              type: SUB-EX24
          entitled:
            SUB-ENG: 26
            SUB-EX24: 9
            SUB-MAN: 26
            SUB-VNA: 26
          licenses:
            - created_time: 1555353534
              end_time: 1586822399
              id: 693a41a6-1234-5678-90ab-f53dbd3a31c0
              modified_time: 1555353534
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 2
              remaining_quantity: 0
              start_time: 1555286400
              subscription_id: VNA-000000aa
              type: SUB-VNA
            - created_time: 1576132516
              end_time: 1586822399
              id: 656607cf-1234-5678-90ab-fc9035614ea5
              modified_time: 1576132516
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 8
              remaining_quantity: 0
              start_time: 1576022400
              subscription_id: VNA-000000ab
              type: SUB-VNA
            - created_time: 1579204568
              end_time: 1730764800
              id: db50d0bc-1234-5678-90ab-e439958cb06b
              modified_time: 1579204568
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 2
              remaining_quantity: 2
              start_time: 1572998400
              subscription_id: MAN-000000ac
              type: SUB-MAN
            - created_time: 1579204568
              end_time: 1730764800
              id: 2ff9e84a-1234-5678-90ab-fb9ec0726e01
              modified_time: 1579204568
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 2
              remaining_quantity: 2
              start_time: 1572998400
              subscription_id: ENG-000000ad
              type: SUB-ENG
            - created_time: 1579204568
              end_time: 1730764800
              id: 16df7ea6-1234-5678-90ab-78018cd4024d
              modified_time: 1579204568
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 2
              remaining_quantity: 2
              start_time: 1572998400
              subscription_id: VNA-000000ae
              type: SUB-VNA
            - created_time: 1586237081
              end_time: 1744243199
              id: 1b6f68d5-1234-5678-90ab-70d3e6d18c73
              modified_time: 1586237081
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 14
              remaining_quantity: 14
              start_time: 1586563200
              subscription_id: VNA-000000af
              type: SUB-VNA
            - created_time: 1586237097
              end_time: 1744243199
              id: 1375c9bf-1234-5678-90ab-9c636708c89e
              modified_time: 1586237097
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 14
              remaining_quantity: 14
              start_time: 1586563200
              subscription_id: MAN-000000ba
              type: SUB-MAN
            - created_time: 1586237137
              end_time: 1744243199
              id: 5974e979-1234-5678-90ab-438f833ec1c9
              modified_time: 1586237137
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 14
              remaining_quantity: 14
              start_time: 1586563200
              subscription_id: ENG-000000bb
              type: SUB-ENG
            - created_time: 1629947267
              end_time: 1744243199
              id: 340a9cb3-1234-5678-90ab-b009344dbf3c
              modified_time: 1629947267
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 10
              remaining_quantity: 9
              start_time: 1586476800
              subscription_id: EX24-000000bc
              type: SUB-EX24
            - created_time: 1632941870
              end_time: 1744156799
              id: 9b599b0f-1234-5678-90ab-406081b58e7f
              modified_time: 1632941870
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 10
              remaining_quantity: 10
              start_time: 1632873600
              subscription_id: ENG-000000bd
              type: SUB-ENG
            - created_time: 1632941882
              end_time: 1744156799
              id: d6d8ead3-1234-5678-90ab-98badeac7287
              modified_time: 1632941882
              order_id: "00000000"
              org_id: 9777c1a0-1234-5678-90ab-02e208b2d34f
              quantity: 11
              remaining_quantity: 9
              start_time: 1632873600
              subscription_id: MAN-000008be
              type: SUB-MAN
          summary:
            SUB-ENG: 18
            SUB-EX24: 3
            SUB-MAN: 22
            SUB-VNA: 20
    map:
      description: Map
      properties:
        created_time:
          readOnly: true
          type: number
        flags:
          description: name/val pair objects for location engine to use
          type: object
        for_site:
          readOnly: true
          type: boolean
        height:
          description: when type=image, height of the image map
          type: number
        height_m:
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        latlng_br:
          description: when type=google, latitude / longitude of the bottom-right corner
          properties:
            lat:
              type: string
            lng:
              type: string
          type: object
        latlng_tl:
          description: when type=google, latitude / longitude of the top-left corner
          properties:
            lat:
              type: string
            lng:
              type: string
          type: object
        locked:
          default: false
          description: whether this map is considered locked down
          type: boolean
        modified_time:
          readOnly: true
          type: number
        name:
          description: The name of the map
          type: string
        occupancy_limit:
          type: integer
        org_id:
          format: uuid
          readOnly: true
          type: string
        orientation:
          default: 0
          description: orientation of the map, 0 means up is north, 90 means up is west
          type: number
        origin_x:
          description: the user-annotated x origin, pixels
          type: number
        origin_y:
          description: the user-annotated y origin, pixels
          type: number
        ppm:
          description: when type=image, pixels per meter
          type: number
        site_id:
          format: uuid
          readOnly: true
          type: string
        sitesurvey_path:
          description: sitesurvey_path
          items:
            properties:
              coordinate:
                type: string
              id:
                format: uuid
                type: string
              name:
                type: string
              nodes:
                items:
                  $ref: "#/components/schemas/map_node"
                minItems: 0
                type: array
            type: object
          minItems: 0
          type: array
        thumbnail_url:
          description: when type=image, the url for the thumbnail image / preview
          readOnly: true
          type: string
        type:
          default: image
          enum:
            - image
            - google
          type: string
        url:
          description: when type=image, the url
          readOnly: true
          type: string
        use_auto_orientation:
          default: false
          description: whether this map uses autooreintation values or ignores them
          type: boolean
        use_auto_placement:
          default: false
          description: whether this map uses autoplacement values or ignores them
          type: boolean
        view:
          description: when type=google
          enum:
            - roadmap
            - satellite
            - hybrid
            - terrain
          nullable: true
          type: string
        wall_path:
          description: a JSON blob for wall definition (same format as wayfinding_path)
          properties:
            coordinate:
              type: string
            name:
              type: string
            nodes:
              items:
                $ref: "#/components/schemas/map_node"
              minItems: 0
              type: array
          type: object
        wayfinding:
          description: properties related to wayfinding
          properties:
            micello:
              properties:
                account_key:
                  type: string
                default_level_id:
                  type: integer
                map_id:
                  format: uuid
                  type: string
              type: object
            snap_to_path:
              type: boolean
          type: object
        wayfinding_path:
          description: a JSON blob for wayfinding (using Dijkstra’s algorithm)
          properties:
            coordinate:
              type: string
            nodes:
              items:
                $ref: "#/components/schemas/map_node"
              minItems: 0
              type: array
          type: object
        width:
          description: when type=image, width of the image map
          type: number
        width_m:
          type: number
      type: object
      x-examples:
        example-1:
          flags: {}
          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
              id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              name: string
              nodes:
                - edges:
                    N2: string
                  name: string
                  position:
                    x: 0
                    y: 0
          thumbnail_url: string
          type: string
          url: string
          view: string
          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
        example-google:
          latlng_br:
            lat: 37.295285
            lng: -122.032789
          latlng_tl:
            lat: 37.295057
            lng: -122.033095
          name: Oakridge Mall
          origin_x: -122.03301
          origin_y: 37.29508
          type: google
          view: roadmap
        example-image:
          flags:
            assetHoldTime: 5
            storeTime: 10
          height: 1500
          locked: false
          name: Mist Office
          orientation: 30
          origin_x: 35
          origin_y: 60
          ppm: 40.94
          sitesurvey_path:
            - coordinate: actual
              id: cbdb7f0b-3be0-4872-88f9-58790b509c23-j68kows8
              name: Default
              nodes:
                - edges:
                    W1: 1
                  name: W0
                  position:
                    x: 372
                    y: 192
                - edges:
                    W2: 1
                  name: W1
                  position:
                    x: 485
                    y: 205
                - edges:
                    W0: 1
                  name: W2
                  position:
                    x: 400
                    y: 295
          thumbnail_url: https://url/to/image.png
          type: image
          url: https://url/to/image.png
          wall_path:
            coordinate: actual
            nodes:
              - edges:
                  N2: "1"
                name: N1
                position:
                  x: 746
                  y: 104
              - edges:
                  N1: "1"
                name: N2
                position:
                  x: 740
                  y: 318
          wayfinding:
            micello:
              account_key: adasdf
              default_level_id: 5
              map_id: c660f81dd250c
            snap_to_path: true
          wayfinding_path:
            coordinate: actual
            nodes:
              - edges:
                  N2: "1"
                name: N1
                position:
                  x: 746
                  y: 104
              - edges:
                  N1: "1"
                name: N2
                position:
                  x: 740
                  y: 318
          width: 1250
    map_node:
      description: Nodes on maps
      properties:
        edges:
          additionalProperties:
            type: string
          type: object
        name:
          type: string
        position:
          properties:
            x:
              type: number
            y:
              type: number
          required:
            - x
            - y
          type: object
      required:
        - name
      type: object
    mxcluster:
      description: mxCluster
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        mist_das:
          $ref: "#/components/schemas/mxedge_das"
        mist_nac:
          $ref: "#/components/schemas/mxcluster_nac"
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        proxy:
          description: Proxy Configuration to talk to Mist
          properties:
            url:
              example: http://proxy.corp.com:8080/
              type: string
          type: object
        radsec:
          $ref: "#/components/schemas/mxcluster_radsec"
        radsec_tls:
          properties:
            keypair:
              type: string
          type: object
        site_id:
          format: uuid
          readOnly: true
          type: string
        tunterm_ap_subnets:
          description: list of subnets where we allow AP to establish Mist Tunnels from
          items:
            type: string
          type: array
        tunterm_dhcpd_config:
          additionalProperties:
            properties:
              enabled:
                default: false
                type: boolean
              servers:
                items:
                  type: string
                type: array
              type:
                default: relay
                enum:
                  - relay
                type: string
            type: object
          description: DHCP server/relay configuration of Mist Tunneled VLANs. The property key is the VLAN ID
          properties:
            enabled:
              default: false
              type: boolean
            servers:
              items:
                type: string
              type: array
            type:
              default: relay
              enum:
                - relay
              type: string
          type: object
        tunterm_extra_routes:
          additionalProperties:
            properties:
              via:
                type: string
            type: object
          description: extra routes for Mist Tunneled VLANs. The property key is a CIDR
          type: object
        tunterm_hosts:
          description: hostnames or IPs where a Mist Tunnel will use as the Peer (i.e. they are reachable from AP)
          items:
            type: string
          type: array
        tunterm_hosts_order:
          description: list of index of tunterm_hosts
          items:
            type: integer
          type: array
        tunterm_hosts_selection:
          default: shuffle
          description: |-
            Ordering of tunterm_hosts for mxedge within the same mxcluster. 
            * When `shuffle`, the ordering of tunterm_hosts is randomized by the device’s MAC. 
            * When `shuffle-by-site`, we shuffle by site_id+tunnel_id (so when client connects to a specific Tunnel, it will go to the same (order of) mxedge, and we load-balancing between tunnels). 
            * When `ordered`, the order is decided by tunterm_hosts_order
          enum:
            - shuffle
            - shuffle-by-site
            - ordered
          type: string
        tunterm_monitoring:
          items:
            $ref: "#/components/schemas/site_tunterm_monitoring"
          type: array
        tunterm_monitoring_disabled:
          type: boolean
      type: object
      x-examples:
        example-1:
          value:
            created_time: 0
            for_site: true
            id: 445f6eca-6276-4993-bfeb-53c3bbba6f08
            modified_time: 0
            name: string
            org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
            radsec:
              acct_servers:
                - host: string
                  port: 1813
                  secret: string
              auth_servers:
                - host: string
                  port: 1812
                  secret: string
              enabled: true
              server_selection: ordered
            radsec_tls:
              keypair: string
            site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
            tunterm_ap_subnets:
              - string
            tunterm_dhcpd_config:
              enabled: false
              property1:
                enabled: false
                servers:
                  - string
                type: relay
              property2:
                enabled: false
                servers:
                  - string
                type: relay
              servers:
                - string
              type: relay
            tunterm_extra_routes:
              property1:
                via: string
              property2:
                via: string
            tunterm_hosts:
              - string
            tunterm_monitoring:
              - host: string
                port: 0
                protocol: arp
                timeout: 300
    mxcluster_nac:
      description: ""
      properties:
        acct_server_port:
          default: 1813
          type: integer
        auth_server_port:
          default: 1812
          type: integer
        client_ips:
          additionalProperties:
            description: Property key is the RADIUS Client IP/Subnet.
            properties:
              secret:
                description: if different from above
                type: string
              site_id:
                description: present only for 3rd party clients
                example: 00000000-0000-0000-1234-000000000000
                format: uuid
                type: string
              vendor:
                description: if not specified, we'll try to determine it dynamically
                type: string
            type: object
          type: object
        enabled:
          type: boolean
        secret:
          example: testing123
          type: string
      type: object
      x-examples:
        example-1:
          acct_server_port: 1813
          auth_server_port: 1812
          client_ips:
            property1:
              secrect: string
              vendor: string
            property2:
              secrect: string
              vendor: string
          enabled: true
          secret: string
    mxcluster_radsec:
      description: MxEdge Radsec Configuration
      properties:
        acct_servers:
          description: list of RADIUS accounting servers, optional, order matters where the first one is treated as primary
          items:
            properties:
              host:
                description: ip / hostname of RADIUS server
                type: string
              port:
                default: 1813
                description: Acct port of RADIUS server
                type: integer
              secret:
                description: secret of RADIUS server
                type: string
              ssids:
                description: list of ssids that will use this server if match_ssid is true and match is found
                items:
                  type: string
                type: array
            type: object
          type: array
          uniqueItems: true
        auth_servers:
          description: list of RADIUS authentication servers, order matters where the first one is treated as primary
          items:
            properties:
              host:
                description: ip / hostname of RADIUS server
                type: string
              keywrap_enabled:
                description: if used for Mist APs, enable keywrap algorithm. Default is false
                type: boolean
              keywrap_format:
                description: if used for Mist APs
                enum:
                  - hex
                  - ascii
                type: string
              keywrap_kek:
                description: if used for Mist APs, encryption key
                type: string
              keywrap_mack:
                description: if used for Mist APs, Message Authentication Code Key
                type: string
              port:
                default: 1812
                description: Auth port of RADIUS server
                type: integer
              secret:
                description: secret of RADIUS server
                type: string
              ssids:
                description: list of ssids that will use this server if match_ssid is true and match is found
                items:
                  type: string
                type: array
            type: object
          type: array
          uniqueItems: true
        enabled:
          description: whether to enable service on Mist Edge i.e. RADIUS proxy over TLS
          type: boolean
        match_ssid:
          description: whether to match ssid in request message to select from a subset of RADIUS servers
          type: boolean
        proxy_hosts:
          description: hostnames or IPs for Mist AP to use as the TLS Server (i.e. they are reachable from AP) in addition to `tunterm_hosts`
          items:
            type: string
          type: array
        server_selection:
          default: ordered
          description: ordered (default) / unordered. When ordered, Mist Edge will prefer and go back to the first radius server if possible
          enum:
            - ordered
            - unordered
          type: string
        source:
          default: any
          description: Specify source address to use when connecting to RADIUS servers
          enum:
            - tunnel
            - oob
            - any
          type: string
      type: object
      x-examples:
        example-1:
          acct_servers:
            - host: 1.2.3.4
              port: 1812
              secret: testing123
          auth_servers:
            - host: 1.2.3.4
              port: 1812
              secret: testing123
            - host: radius.internal
              port: 1812
              secret: testing123
          enabled: true
          server_selection: ordered
    mxedge:
      description: MxEdge
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          example: 95ddd29a-6a3c-929e-a431-51a5b09f36a6
          format: uuid
          readOnly: true
          type: string
        magic:
          example: L-NpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
          readOnly: true
          type: string
        model:
          example: ME-100
          type: string
        modified_time:
          readOnly: true
          type: number
        mxagent_registered:
          readOnly: true
          type: boolean
        mxcluster_id:
          description: MxCluster this MxEdge belongs to
          example: 572586b7-f97b-a22b-526c-8b97a3f609c4
          format: uuid
          type: string
        mxedge_mgmt:
          properties:
            mist_password:
              example: MIST_PASSWORD
              type: string
            root_password:
              example: ROOT_PASSWORD
              type: string
          type: object
        name:
          example: Guest
          type: string
        ntp_servers:
          items:
            type: string
          type: array
        oob_ip_config:
          description: ip configuration of the Mist Edge out-of-band management interface
          properties:
            dns:
              default:
                - 8.8.8.8
                - 8.8.4.4
              description: if `type`=`static`
              items:
                example: '"8.8.8.8"'
                type: string
              type: array
            gateway:
              description: if `type`=`static`
              example: 10.2.1.254
              type: string
            ip:
              description: if `type`=`static`
              example: 10.2.1.2
              type: string
            netmask:
              description: if `type`=`static`
              example: 255.255.255.0
              type: string
            type:
              default: dhcp
              enum:
                - static
                - dhcp
              example: static
              type: string
          type: object
        org_id:
          format: uuid
          readOnly: true
          type: string
        proxy:
          properties:
            url:
              description: Proxy Configuration to talk to Mist
              example: http://proxy.internal:8080/
              type: string
          type: object
        services:
          description: list of services to run, tunterm only for now
          items:
            default: tunterm
            type: string
          type: array
        site_id:
          format: uuid
          readOnly: true
          type: string
        tunterm_dhcpd_config:
          additionalProperties:
            properties:
              enabled:
                default: false
                type: boolean
              servers:
                description: list of DHCP servers; required if `type`==`relay`
                items:
                  type: string
                type: array
              type:
                default: relay
                enum:
                  - relay
                type: string
            type: object
          description: global and per-VLAN. The property key is the VLAN ID
          properties:
            enabled:
              default: false
              type: boolean
            servers:
              description: list of DHCP servers; required if `type`==`relay`
              items:
                type: string
              type: array
            type:
              default: relay
              enum:
                - relay
              type: string
          type: object
        tunterm_extra_routes:
          additionalProperties:
            properties:
              via:
                type: string
            type: object
          description: The property key is a CIDR
          type: object
        tunterm_igmp_snooping_config:
          properties:
            enabled:
              default: false
              type: boolean
            querier:
              properties:
                max_response_time:
                  description: querier’s query response interval, in tenths-of-seconds
                  example: 10
                  type: integer
                mtu:
                  description: the MTU we use (needed when forming large IGMPv3 Reports)
                  example: 1500
                  type: integer
                query_interval:
                  description: querier’s query interval, in seconds
                  example: 125
                  type: integer
                robustness:
                  description: "querier’s robustness "
                  maximum: 7
                  minimum: 1
                  type: integer
                version:
                  description: querier’s maximum protocol version
                  example: 3
                  type: integer
              type: object
            vlan_ids:
              description: the list of vlans on which tunterm performs IGMP snooping
              items:
                example: 2
                type: integer
              type: array
          type: object
        tunterm_ip_config:
          description: ip configuration of the Mist Tunnel interface
          properties:
            gateway:
              example: 10.2.1.254
              type: string
            ip:
              description: untagged VLAN
              example: 10.2.1.1
              type: string
            netmask:
              example: 255.255.255.0
              type: string
          required:
            - gateway
            - ip
            - netmask
          type: object
        tunterm_monitoring:
          items:
            $ref: "#/components/schemas/site_tunterm_monitoring"
          type: array
        tunterm_other_ip_configs:
          additionalProperties:
            properties:
              ip:
                type: string
              netmask:
                type: string
            required:
              - ip
              - netmask
            type: object
          description: ip configs by VLAN ID. The property key is the VLAN ID
          type: object
        tunterm_port_config:
          description: ethernet port configurations
          properties:
            downstream_ports:
              description: list of ports to be used for downstream (to AP) purpose
              items:
                type: string
              type: array
            separate_upstream_downstream:
              default: false
              description: weather to separate upstream / downstream ports. default is false where all ports will be used.
              type: boolean
            upstream_port_vlan_id:
              default: 1
              description: native VLAN id for upstream ports
              example: 30
              type: integer
            upstream_ports:
              description: list of ports to be used for upstrea purpose (to LAN)
              items:
                type: string
              type: array
          type: object
        tunterm_registered:
          readOnly: true
          type: boolean
        tunterm_switch_config:
          additionalProperties:
            properties:
              port_vlan_id:
                type: integer
              vlan_ids:
                items:
                  anyOf:
                    - type: integer
                    - type: string
                type: array
            type: object
          description: if custom vlan settings are desired
          properties:
            enabled:
              type: boolean
          type: object
        versions:
          properties:
            mxagent:
              type: string
            tuntnerm:
              type: string
          type: object
      required:
        - model
        - name
      type: object
      x-examples:
        Example 1:
          created_time: 0
          for_site: true
          id: 95ddd29a-6a3c-929e-a431-51a5b09f36a6
          magic: L-NpT5gi-ADR8WTFd4EiQPY3cP5WdSoD
          model: ME-100
          modified_time: 0
          mxagent_registered: true
          mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
          mxedge_mgmt:
            mist_password: MIST_PASSWORD
            root_password: ROOT_PASSWORD
          name: Guest
          ntp_servers:
            - string
          oob_ip_config:
            dns:
              - 8.8.8.8
              - 8.8.4.4
            gateway: 10.2.1.254
            ip: 10.2.1.2
            netmask: 255.255.255.0
            type: dhcp
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          proxy:
            url: http://proxy.internal:8080/
          services:
            - tunterm
          site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          tunterm_dhcpd_config:
            enabled: false
            property1:
              enabled: false
              servers:
                - string
              type: relay
            property2:
              enabled: false
              servers:
                - string
              type: relay
            servers:
              - string
            type: relay
          tunterm_extra_routes:
            property1:
              via: string
            property2:
              via: string
          tunterm_igmp_snooping_config:
            enabled: false
            querier:
              max_response_time: 10
              mtu: 1500
              query_interval: 125
              robustness: 1
              version: 3
            vlan_ids:
              - 2
          tunterm_ip_config:
            gateway: 10.2.1.254
            ip: 10.2.1.1
            netmask: 255.255.255.0
          tunterm_monitoring:
            - host: 10.2.8.15
              port: 80
              protocol: tcp
              timeout: 300
          tunterm_other_ip_configs:
            property1:
              ip: string
              netmask: string
            property2:
              ip: string
              netmask: string
          tunterm_port_config:
            downstream_ports:
              - "3"
            separate_upstream_downstream: false
            upstream_port_vlan_id: 1
            upstream_ports:
              - "0"
          tunterm_registered: true
          tunterm_switch_config:
            enabled: true
            property1:
              port_vlan_id: 0
              vlan_ids:
                - 0
            property2:
              port_vlan_id: 0
              vlan_ids:
                - 0
          versions:
            mxagent: string
            tuntnerm: string
    mxedge_das:
      description: configure cloud-assisted dynamic authorization service on this cluster of mist edges
      properties:
        coa_servers:
          description: dynamic authorization clients configured to send CoA|DM to mist edges on port 3799
          items:
            properties:
              disable_event_timestamp_check:
                default: false
                description: whether to disable Event-Timestamp Check
                type: boolean
              enabled:
                type: boolean
              host:
                description: this server configured to send CoA|DM to mist edges
                type: string
              port:
                default: 3799
                description: mist edges will allow this host on this port
                type: integer
              secret:
                type: string
            type: object
          type: array
        enabled:
          default: false
          type: boolean
      type: object
      x-examples:
        example-1:
          coa_servers:
            - disable_event_timestamp_check: false
              enabled: false
              host: aaa.internal
              port: 3799
              secret: testing456
          enabled: true
    mxedge_mgmt:
      properties:
        mist_password:
          type: string
        root_password:
          type: string
      title: mxedge_mgmt
      type: object
    mxedge_upgrade_response:
      description: ""
      properties:
        channel:
          minLength: 1
          type: string
        counts:
          properties:
            failed:
              type: integer
            queued:
              type: integer
            success:
              type: integer
            upgrading:
              type: integer
          required:
            - queued
            - upgrading
            - success
            - failed
          type: object
        id:
          minLength: 1
          type: string
        status:
          minLength: 1
          type: string
        strategy:
          minLength: 1
          type: string
        versions:
          type: object
      required:
        - status
        - strategy
        - versions
        - channel
        - id
        - counts
      type: object
      x-examples:
        example-1:
          channel: stable
          counts:
            failed: 0
            queued: 1
            success: 0
            upgrading: 1
          id: ceef2c8a-e2e6-447a-8b27-cb4f3ec1adae
          status: upgrading
          strategy: serial
          versions: {}
    mxtunnel:
      description: MxTunnel
      properties:
        anchor_mxtunnel_ids:
          description: list of anchor mxtunnels used for forming edge to edge tunnels
          items:
            example: 1e970fec-0a7a-4d73-a472-3ef3b6a456aa
            format: uuid
            type: string
          type: array
        auto_preemption:
          properties:
            day_of_week:
              enum:
                - any
                - mon
                - tue
                - wed
                - thu
                - fri
                - sat
                - sun
              type: string
            enabled:
              description: whether auto preemption should happen
              type: boolean
            time_of_day:
              description: any / HH:MM (24-hour format). Preemption will happen within 15 mins of this time
              type: string
          type: object
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        hello_interval:
          default: 60
          description: in seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by `hello_retries`.
          maximum: 300
          minimum: 1
          nullable: true
          type: integer
        hello_retries:
          default: 7
          maximum: 30
          minimum: 2
          nullable: true
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        ipsec:
          properties:
            dns_servers:
              items:
                type: string
              nullable: true
              type: array
            dns_suffix:
              items:
                type: string
              type: array
            enabled:
              type: boolean
            extra_routes:
              items:
                properties:
                  dest:
                    type: string
                  next_hop:
                    format: ipv4
                    type: string
                type: object
              type: array
            split_tunnel:
              type: boolean
            use_mxedge:
              type: boolean
          type: object
        modified_time:
          readOnly: true
          type: number
        mtu:
          default: 0
          description: 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
          maximum: 1500
          minimum: 0
          type: integer
        mxcluster_ids:
          description: list of mxclusters to deploy this tunnel to
          items:
            format: uuid
            type: string
          type: array
        name:
          nullable: true
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        protocol:
          default: udp
          enum:
            - udp
            - ip
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        vlan_ids:
          description: list of vlan_ids that will be used
          items:
            type: integer
          type: array
      type: object
      x-examples:
        example-1:
          hello_interval: 60
          hello_retries: 3
          ipsec:
            dns_servers:
              - 172.16.0.8
            enabled: true
            extra_routes:
              - dest: 172.16.0.0/12
                next_hop: 172.16.0.1
            split_tunnel: true
          mxcluster_ids:
            - 572586b7-f97b-a22b-526c-8b97a3f609c4
          name: HQ
          protocol: udp
          vlan_ids:
            - 3
            - 4
            - 5
    nac_rule:
      properties:
        action:
          enum:
            - allow
            - block
          type: string
        apply_tags:
          description: all optional, this goes into Access-Accept
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: integer
        enabled:
          default: true
          description: enabled or not
          type: boolean
        id:
          format: uuid
          minLength: 1
          readOnly: true
          type: string
        matching:
          $ref: "#/components/schemas/nac_rule_matching"
        modified_time:
          readOnly: true
          type: integer
        name:
          type: string
        not_matching:
          $ref: "#/components/schemas/nac_rule_matching"
        order:
          description: the order of the rule, lower value implies higher priority
          type: number
        org_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - action
        - name
      type: object
      x-examples:
        example-1:
          apply_tags:
            - c049dfcd-0c73-5014-1c64-062e9903f1e5
          id: 7e700e85-6080-69b9-729e-ee9e012d7408
          matching:
            auth_type: cert
            nactags:
              - 041d5d36-716c-4cfb-4988-3857c6aa14a2
              - a809a97f-d599-f812-eb8c-c3f84aabf6ba
            port_types:
              - wired
          not_matching:
            auth_type: cert
            nactags:
              - 041d5d36-716c-4cfb-4988-3857c6aa14a2
              - a809a97f-d599-f812-eb8c-c3f84aabf6ba
            port_types:
              - wired
          order: 1
    nac_rule_matching:
      properties:
        auth_type:
          default: cert
          enum:
            - cert
            - idp
            - mab
            - psk
          minLength: 1
          type: string
        nactags:
          items:
            type: string
          type: array
        port_types:
          items:
            enum:
              - wireless
              - wired
            type: string
          type: array
        site_ids:
          description: list of site ids to match
          items:
            format: uuid
            type: string
          type: array
        sitegroup_ids:
          description: list of sitegroup ids to match
          items:
            format: uuid
            type: string
          type: array
      title: nac_rule_matching
      type: object
    nac_tag:
      properties:
        created_time:
          readOnly: true
          type: number
        gbp_tag:
          description: if `type`==`gbp_tag`
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        match:
          description: if `type`==`match`
          enum:
            - vendor
            - idp_role
            - cert_cn
            - cert_sub
            - cert_serial
            - cert_issuer
            - cert_san
            - realm
            - user_name
            - ssid
            - client_mac
          minLength: 1
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          minLength: 1
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        radius_group:
          description: if `type`==`radius_group`
          type: string
        type:
          enum:
            - match
            - radius_group
            - vlan
            - gbp_tag
          minLength: 1
          type: string
        values:
          description: if `type`==`match`
          items:
            type: string
          type: array
        vlan:
          description: if `type`==`vlan`
          type: string
      required:
        - name
        - type
      type: object
      x-examples:
        client_mac:
          match: client_mac
          name: cameras
          type: match
          values:
            - "010203040506"
            - abcdef*
        matches_cert_cn:
          match: cert_cn
          name: staff
          type: match
          values:
            - john
            - staff*
        matches_cert_issuer:
          match: cert_issuer
          name: issuer1
          type: match
          values:
            - /C=CN/ST=defy/L=defy/O=defy/OU=defy/CN=defy
        matches_cert_san:
          match: cert_san
          name: san1
          type: match
          values:
            - henry1@defy.com
        matches_cert_serial:
          match: cert_serial
          name: serial1
          type: match
          values:
            - 6a524ab782fb468c00c59f51cff00268d95533b8
        matches_cert_sub:
          match: cert_sub
          name: subject1
          type: match
          values:
            - /C=CN/ST=defy/O=defy/OU=defy/CN=steve
        matches_radius_group:
          radius_group: VIP
          type: radius_group
        matches_realm:
          match: realm
          name: defy
          type: match
          values:
            - defy.com
        matches_role:
          match: idp_role
          name: VIP
          type: match
          values:
            - vip
        matches_username:
          match: user_name
          name: admins
          type: match
          values:
            - bob
            - steve
        matches_vendor:
          match: vendor
          name: guest-wlan
          type: match
          values:
            - cisco
        matches_vlan:
          type: vlan
          vlan: "30"
    network:
      description: Networks are usually subnets that have cross-site significance. `networks`in Org Settings will got merged into `networks`in Site Setting. For gateways, they can be used to define Service Routes.
      properties:
        created_time:
          readOnly: true
          type: number
        disallow_mist_services:
          default: false
          description: whether to disallow Mist Devices in the network
          type: boolean
        gateway:
          example: 192.168.70.1
          format: ipv4
          type: string
        hosts:
          additionalProperties:
            properties:
              external_ips:
                example: 172.16.10.32-172.16.10.35
                type: string
              ips:
                example: 192.168.70.32-192.168.70.35
                type: string
            type: object
          type: object
        id:
          format: uuid
          readOnly: true
          type: string
        internal_access:
          properties:
            enabled:
              type: boolean
          type: object
        internet_access:
          description: whether this network has direct internet access
          properties:
            create_simple_service_policy:
              default: false
              type: boolean
            destination_nat:
              additionalProperties:
                properties:
                  internal_ip:
                    type: string
                  name:
                    type: string
                  port:
                    type: string
                type: object
              description: The property key may be an IP Address (i.e. "172.16.0.1"), and IP Address and Port (i.e. "172.16.0.1:8443") or a CIDR (i.e. "172.16.0.12/20")
              type: object
            enabled:
              type: boolean
            restricted:
              default: false
              description: by default, all access is allowed, to only allow certain traffic, make `restricted`=`true` and define service_policies
              type: boolean
            static_nat:
              additionalProperties:
                properties:
                  internal_ip:
                    type: string
                  name:
                    type: string
                type: object
              description: The property key may be an IP Address (i.e. "172.16.0.1"), and IP Address and Port (i.e. "172.16.0.1:8443") or a CIDR (i.e. "172.16.0.12/20")
              type: object
          type: object
        isolation:
          description: whether to allow clients in the network to talk to each other
          type: boolean
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        subnet:
          example: 192.168.70.0/24
          type: string
        tenants:
          additionalProperties:
            properties:
              addresses:
                type: string
            type: object
          type: object
        vlan_id:
          type: integer
        vpn_access:
          additionalProperties:
            properties:
              allow_ping:
                description: whether to allow ping from vpn into this routed network
                type: boolean
              destination_nat:
                additionalProperties:
                  properties:
                    name:
                      type: string
                    port:
                      type: string
                    to:
                      type: string
                  type: object
                description: if `routed` = `false` (usually at Spoke), but some hosts needs to be reachable from Hub
                type: object
              nat_pool:
                description: if `routed` = `false` (usually at Spoke), but some hosts needs to be reachable from Hub
                type: string
              routed:
                description: whether this network is routable
                type: boolean
              source_nat:
                description: if `routed`==`false` (usually at Spoke), but some hosts needs to be reachable from Hub
                properties:
                  exteral_ip:
                    description: when `nat_pool` is used with {{VARS}} in bigger deployments with lots of spokes for source_nat and static_nat to work, we need the summarized subnet to set up Hub's policy correctly
                    type: string
                type: object
              static_nat:
                additionalProperties:
                  properties:
                    name:
                      type: string
                    to:
                      type: string
                  type: object
                description: if `routed` = `false` (usually at Spoke), but some hosts needs to be reachable from Hub
                type: object
              summarized_nat_pool:
                type: string
            type: object
          description: whether this network can be accessed from vpn
          type: object
      type: object
      x-examples:
        example-1:
          value:
            created_time: 0
            gateway: 192.168.70.1
            hosts:
              property1:
                external_ips: 172.16.10.32-172.16.10.35
                ips: 192.168.70.32-192.168.70.35
              property2:
                external_ips: 172.16.10.32-172.16.10.35
                ips: 192.168.70.32-192.168.70.35
            id: 443f6eca-6276-4993-bfeb-53c5bbba6f08
            internal_access:
              enabled: true
            internet_access:
              destination_nat:
                property1:
                  internal_ip: string
                  name: string
                  port: string
                property2:
                  internal_ip: string
                  name: string
                  port: string
              enabled: true
              restricted: false
              static_nat:
                property1:
                  internal_ip: string
                  name: string
                property2:
                  internal_ip: string
                  name: string
            isolation: true
            modified_time: 0
            name: string
            org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
            subnet: 192.168.70.0/24
            tenants:
              property1:
                addresses: string
              property2:
                addresses: string
            vlan_id: 0
            vpn_access:
              property1:
                destination_nat:
                  property1:
                    name: string
                    port: string
                    to: string
                  property2:
                    name: string
                    port: string
                    to: string
                nat_pool: string
                routed: true
                static_nat:
                  property1:
                    name: string
                    to: string
                  property2:
                    name: string
                    to: string
              property2:
                destination_nat:
                  property1:
                    name: string
                    port: string
                    to: string
                  property2:
                    name: string
                    port: string
                    to: string
                nat_pool: string
                routed: true
                static_nat:
                  property1:
                    name: string
                    to: string
                  property2:
                    name: string
                    to: string
    networktemplate:
      description: Network Template
      properties:
        additional_config_cmds:
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: number
        dhcp_snooping:
          $ref: "#/components/schemas/junos_dhcp_snooping"
        dns_servers:
          items:
            type: string
          type: array
        dns_suffix:
          items:
            type: string
          type: array
        extra_routes:
          additionalProperties:
            description: Property key is the destination CIDR or network name
            properties:
              via:
                description: Next-hop address
                type: string
            type: object
          type: object
        group_tags:
          type: object
        id:
          format: uuid
          readOnly: true
          type: string
        mist_nac:
          description: enable mist_nac to use radsec
          properties:
            enabled:
              type: boolean
            network:
              type: string
          type: object
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        networks:
          additionalProperties:
            properties:
              subnet:
                example: 192.168.1.0/24
                type: string
              vlan_id:
                example: 10
                type: integer
            type: object
          description: The property key is network name
          type: object
        ntp_servers:
          items:
            type: string
          type: array
        org_id:
          format: uuid
          readOnly: true
          type: string
        port_usages:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_usages"
          description: The property key is the port profile name
          properties:
            dynamic:
              $ref: "#/components/schemas/junos_port_usages_dynamic"
          type: object
        radius_config:
          $ref: "#/components/schemas/junos_radius_config"
        remote_syslog:
          $ref: "#/components/schemas/remote_syslog"
        snmp_config:
          $ref: "#/components/schemas/junos_snmp_config"
        switch_matching:
          $ref: "#/components/schemas/template_switch.matching"
        switch_mgmt:
          properties:
            config_revert:
              default: 10
              type: integer
            protect_re:
              properties:
                enabled:
                  default: false
                  type: boolean
              type: object
            root_password:
              type: string
            tacacs:
              properties:
                acct_servers:
                  items:
                    properties:
                      host:
                        type: string
                      port:
                        type: string
                      secret:
                        type: string
                      timeout:
                        default: 10
                        type: integer
                    type: object
                  type: array
                enabled:
                  type: boolean
                network:
                  type: string
                tacplus_servers:
                  items:
                    properties:
                      host:
                        type: string
                      port:
                        type: string
                      secret:
                        type: string
                      timeout:
                        default: 10
                        type: integer
                    type: object
                  type: array
              type: object
          type: object
        vrf_config:
          properties:
            enabled:
              default: false
              type: boolean
          type: object
        vrf_instances:
          additionalProperties:
            properties:
              extra_routes:
                additionalProperties:
                  properties:
                    via:
                      description: Next-hop address
                      type: string
                  type: object
                description: Property key is the destination CIDR (e.g. "10.0.0.0/8")
                type: object
              networks:
                items:
                  type: string
                type: array
            type: object
          description: Property key is the VRF name
          type: object
      type: object
      x-examples:
        example-1:
          name: string
          networks:
            dns:
              - string
            dns_suffix:
              - string
            gateway: string
            subnet: string
            vlan_id: 1
          port_usages:
            eth0:
              all_networks: true
              bypass_auth_when_server_down: true
              description: string
              disable_autoneg: true
              disabled: true
              duplex: half
              enable_mac_auth: true
              guest_network: string
              mac_limit: 0
              mode: access
              mtu: 0
              networks:
                - string
              poe_disabled: true
              port_auth: string
              port_network: string
              speed: string
              storm_control:
                no_broadcast: true
                no_multicast: true
                no_registered_multicast: true
                no_unknown_unicast: true
                percentage: 0
              stp_edge: true
              voip_network: string
          radius_config:
            acct_interim_interval: 0
            acct_servers:
              - host: string
                port: 0
                secret: string
            auth_servers:
              - host: string
                port: 0
                secret: string
            auth_servers_retries: 0
            auth_servers_timeout: 0
          switch_matching:
            enable: true
            rules:
              - additional_config_cmds:
                  - string
                match_model: string
                "match_name[0:3]": string
                match_role: string
                name: string
                port_config:
                  aggregated: true
                  description: string
                  dynamic_usage: true
                  usage: string
          switch_mgmt:
            config_revert_timer: 0
    note:
      properties:
        note:
          description: Some text note describing the intent
          type: string
      title: note
      type: object
      x-examples:
        example:
          value:
            note: maintenance window
    oauth_app_status:
      properties:
        accounts:
          description: List of linked apps(zoom/teams) account details
          items:
            properties:
              account_id:
                description: Linked apps(zoom/teams) account id
                type: string
              error:
                description: This error is provided only when the apps(zoom) account refresh token fails in the backend
                type: string
              last_status:
                description: Is the last data pull for apps(zoom/teams) account is successful or not
                oneOf:
                  - type: integer
                  - type: string
              last_sync:
                oneOf:
                  - type: integer
                  - type: string
              linked_by:
                description: First name of the user who linked the apps(zoom/teams) account
                type: string
              name:
                description: Name of the company whose (zoom/teams) account mist has subscribed to
                type: string
            type: object
          type: array
        authorization_url:
          description: Only if `forward_url` is set in the request
          type: string
        linked:
          description: OAuth application linked status, is mist portal authorized with the OAuth appliation
          type: boolean
      type: object
      x-examples:
        Example 1:
          accounts:
            - account_id: KkEM7orQSIWHZNFzwMLuRA
              last_status: success
              last_sync: 1665465339000
              linked_by: Testname1
              name: Test Compay1 Ltd
            - account_id: kojzWgIJQ0ujR73VvydOdg
              error: OAuth token refresh failed, please re-link zoom
              last_sync: 1665465346000
              linked_by: Testname2
              name: Test Compay2 Ltd
            - account_id: iojzXIJWEuiD73ZvydOfg
              last_status: 1665465538000
              last_sync: failed
              linked_by: Testname3
              name: Test Compay3 Ltd
          linked: true
      x-stoplight:
        id: 1fb753875ddef
    org:
      description: An organization usualy represents a customer - which has inventories, licenses. An Organization can contain multiple sites. A site usually represents a deployment at the same location (a campus, an office).
      properties:
        alarmtemplate_id:
          format: uuid
          nullable: true
          type: string
        allow_mist:
          default: true
          type: boolean
        created_time:
          readOnly: true
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          nullable: true
          readOnly: true
          type: string
        name:
          type: string
        orggroup_ids:
          default: []
          items:
            format: uuid
            type: string
          type: array
        session_expiry:
          default: 1440
          type: number
      required:
        - name
      type: object
      x-examples:
        example-1:
          alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          allow_mist: true
          msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          name: string
          orggroup_ids: []
          session_expiry: 0
    org_auto_rules:
      description: auto_rules in org settings
      properties:
        expression:
          description: |-
            "[0:3]"            // "abcdef" -> "abc"
            "split(.)[1]"      // "a.b.c" -> "b"
            "split(-)[1][0:3]" // "a1234-b5678-c90" -> "b56"  
          example: split(.)[1]
          nullable: true
          type: string
        model:
          type: string
        prefix:
          example: XX-
          nullable: true
          type: string
        src:
          enum:
            - name
            - subnet
            - lldp_system_name
            - dns_suffix
            - model
            - lldp_port_desc
          type: string
        subnet:
          type: string
        suffix:
          example: -YY
          nullable: true
          type: string
        value:
          type: string
      required:
        - src
      type: object
      x-examples:
        dns_suffix:
          expression: split(-)[1][0:3]
          src: dns_suffix
        lldp_system_name:
          expression: split(.)[1]
          src: lldp_system_name
        model:
          model: AP41
          src: model
          value: s1351
        name:
          expression: "[0:3]"
          prefix: XX-
          src: name
          suffix: -YY
        subnet:
          src: subnet
          subnet: 10.1.2.0/18
          value: s1351
    org_device_upgrade_response:
      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:
          description: unique id for the upgrade
          format: uuid
          minLength: 1
          readOnly: true
          type: string
        start_time:
          description: upgrade start time in epoch
          type: number
        status:
          description: status upgrade is in
          enum:
            - created
            - in_progress
            - completed
            - canceled
          type: string
        strategy:
          default: big_bang
          description: upgrade strategy
          enum:
            - big_bang
          minLength: 1
          type: string
        target_version:
          description: version to upgrade to
          minLength: 1
          type: string
        upgrades:
          items:
            properties:
              site_id:
                format: uuid
                type: string
              upgrade:
                properties:
                  id:
                    format: uuid
                    type: string
                  start_time:
                    description: upgrade start time in epoch
                    type: integer
                  status:
                    description: status upgrade is in
                    enum:
                      - created
                      - in_progress
                      - completed
                      - cancelled
                    type: string
                  targets:
                    properties:
                      downloaded:
                        description: devices which have the firmware downloaded
                        items:
                          format: uuid
                          type: string
                        type: array
                      failed:
                        description: devices which have the failed to upgrade
                        items:
                          format: uuid
                          type: string
                        type: array
                      reboot_in_progress:
                        description: devices which are rebooting
                        items:
                          format: uuid
                          type: string
                        type: array
                      rebooted:
                        description: devices which have rebooted successfully
                        items:
                          format: uuid
                          type: string
                        type: array
                      scheduled:
                        description: devices which cloud has scheduled an upgrade
                        items:
                          format: uuid
                          type: string
                        type: array
                      skipped:
                        description: devices which have skipped upgrade since requested version was same as running version. Use `force` to always upgrade
                        items:
                          format: uuid
                          type: string
                        type: array
                      upgraded:
                        description: devices which have upgraded successfully
                        items:
                          format: uuid
                          type: string
                        type: array
                    type: object
                type: object
            type: object
          type: array
      required:
        - id
      title: org_device_upgrade_response
      type: object
      x-examples:
        example-1:
          enable_p2p: true
          force: true
          id: 442f6eca-6276-4993-bfeb-53c6bbba6f08
          start_time: 0
          status: created
          strategy: big_bang
          target_version: string
          upgrades:
            - site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
              upgrade:
                id: 441f6eca-6276-4993-bfeb-53c7bbba6f08
                start_time: 0
                status: created
                targets:
                  download_requested:
                    - 440f6eca-6276-4993-bfeb-53c8bbba6f08
                  downloaded:
                    - 439f6eca-6276-4993-bfeb-53c9bbba6f08
                  failed:
                    - 438f6eca-6276-4993-bfeb-53cabbba6f08
                  reboot_in_progress:
                    - 437f6eca-6276-4993-bfeb-53ccbbba6f08
                  rebooted:
                    - 436f6eca-6276-4993-bfeb-53cebbba6f08
                  skipped:
                    - 435f6eca-6276-4993-bfeb-53cfbbba6f08
    org_info:
      description: ""
      properties:
        alarmtemplate_id:
          format: uuid
          nullable: true
          type: string
        allow_mist:
          default: true
          type: boolean
        created_time:
          example: 1652905706
          readOnly: true
          type: number
        id:
          example: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
          format: uuid
          readOnly: true
          type: string
        modified_time:
          example: 1652905706
          readOnly: true
          type: number
        msp_id:
          example: b9d42c2e-88ee-41f8-b798-f009ce7fe909
          format: uuid
          type: string
        msp_logo_url:
          description: logo uploaded by the MSP with advanced tier, only present if provided
          example: https://.../logo/b9d42c2e-88ee-41f8-b798-f009ce7fe909.jpeg
          format: uri
          readOnly: true
          type: string
        msp_name:
          description: name of the msp the org belongs to
          example: MSP
          readOnly: true
          type: string
        name:
          example: Org
          type: string
        orggroup_ids:
          items:
            format: uuid
            type: string
          type: array
        session_expiry:
          default: 1440
          example: 1440
          type: number
      required:
        - id
        - name
      type: object
      x-examples:
        example-1:
          alarmtemplate_id: null
          allow_mist: true
          created_time: 1652905706
          id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
          modified_time: 1652905706
          msp_id: b9d42c2e-88ee-41f8-b798-f009ce7fe909
          msp_logo_url: https://.../logo/b9d42c2e-88ee-41f8-b798-f009ce7fe909.jpeg
          msp_name: MSP
          name: Org
          session_expiry: 1440
    org_setting:
      description: Org Settings
      properties:
        auto_device_naming:
          properties:
            enable:
              type: boolean
            rules:
              items:
                $ref: "#/components/schemas/org_auto_rules"
              nullable: true
              type: array
          type: object
        auto_deviceprofile_assignment:
          properties:
            enable:
              type: boolean
            rules:
              items:
                $ref: "#/components/schemas/org_auto_rules"
              nullable: true
              type: array
          type: object
        auto_site_assignment:
          properties:
            enable:
              type: boolean
            rules:
              items:
                $ref: "#/components/schemas/org_auto_rules"
              nullable: true
              type: array
          type: object
        blacklist_url:
          example: https://papi.s3.amazonaws.com/blacklist/xxx...
          readOnly: true
          type: string
        cacerts:
          description: list of PEM-encoded ca certs
          items:
            example: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
            type: string
          type: array
        celona:
          properties:
            api_key:
              example: $2a$04$OkaLCoJn6rDjR8ha.oduQVDST3.kJNIrte
              type: string
            api_prefix:
              example: cc3273fcb016470e
              type: string
          type: object
        cloudshark:
          properties:
            apitoken:
              example: accbd6f10c6d05c3
              type: string
            url:
              description: if using CS Enteprise
              example: https://cloudshark.hosted.domain
              type: string
          type: object
        cradlepoint:
          properties:
            cp_api_id:
              example: 84446d61-2206-4ea5-855a-0043f980be54
              type: string
            cp_api_key:
              example: 79c329da9893e34099c7d8ad5cb9c941
              type: string
            ecm_api_id:
              example: 73446d61-2206-4ea5-855a-0043f980be62
              type: string
            ecm_api_key:
              example: 68b329da9893e34099c7d8ad5cb9c940
              type: string
          type: object
        created_time:
          readOnly: true
          type: number
        device_cert:
          description: common device cert, optional
          properties:
            cert:
              example: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
              type: string
            key:
              example: -----BEGIN PRI...
              type: string
          type: object
        device_updown_threshold:
          default: 0
          description: |-
            enable threshold-based device down delivery via 
            1) device-updowns webhooks topic, 
            2) Mist Alert Framework; e.g. send AP/SW/GW down event only if AP/SW/GW Up is not seen within the threshold in minutes; 0 - 240, default is 0 (trigger immediate)
          maximum: 30
          minimum: 0
          type: integer
        disable_pcap:
          default: false
          description: whether to disallow Mist to analyze pcap files (this is required for marvis pcap)
          type: boolean
        disable_remote_shell:
          default: false
          description: whether to disable remote shell access for an entire org
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        gateway_mgmt:
          properties:
            app_probing:
              properties:
                apps:
                  description: app-keys from /api/v1/const/applications
                  items:
                    type: string
                  type: array
              type: object
            app_usage:
              type: boolean
            tacacs:
              $ref: "#/components/schemas/tacacs"
          type: object
        id:
          format: uuid
          readOnly: true
          type: string
        installer:
          properties:
            allow_all_devices:
              type: boolean
            allow_all_sites:
              type: boolean
            extra_site_ids:
              items:
                example: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                format: uuid
                type: string
              type: array
            grace_period:
              type: number
          type: object
        juniper:
          properties:
            accounts:
              items:
                properties:
                  linked_by:
                    type: string
                  name:
                    type: string
                type: object
              type: array
            customer_name:
              type: string
            linked:
              type: boolean
          type: object
        mgmt:
          description: management-related properties
          properties:
            mxtunnel_ids:
              description: list of Mist Tunnels
              items:
                example: 08cd7499-5841-51c8-e663-fb16b6f3b45e
                format: uuid
                type: string
              type: array
            use_mxtunnel:
              default: false
              description: whether to use Mist Tunnel for mgmt connectivity,  this takes precedence over use_wxtunnel
              type: boolean
            use_wxtunnel:
              default: false
              description: whether to use wxtunnel for mgmt connectivity
              type: boolean
          type: object
        mist_nac:
          properties:
            cacerts:
              description: the CA certs we use to verify client certs
              example: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
              type: string
            default_idp_id:
              description: use this IDP when no explicit realm present in the incoming username/CN OR when no IDP is explicitly mapped to the incoming realm.
              type: string
            idps:
              items:
                properties:
                  id:
                    example: 4c441a74-d0de-32c4-78a7-a05e00d080ae
                    readOnly: true
                    type: string
                  realm:
                    description: |-
                      which realm should trigger this IDP.
                      we extract user realm from
                      1. Username-AVP (`mist.com` from john@mist.com)
                      2. Cert CN 
                    items:
                      example: abc
                      type: string
                    type: array
                type: object
              type: array
            server_cert:
              description: radius server cert to be presented in EAP TLS
              properties:
                cert:
                  example: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
                  type: string
                key:
                  example: -----BEGIN PRI...
                  type: string
              type: object
          type: object
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        mxedge_mgmt:
          $ref: "#/components/schemas/mxedge_mgmt"
        org_id:
          format: uuid
          readOnly: true
          type: string
        password_policy:
          description: password policy
          properties:
            enabled:
              default: false
              description: whether the policy is enabled
              type: boolean
            freshness:
              description: days, required if password policy is enabled
              example: 60
              type: integer
            min_length:
              default: 8
              description: required password length
              type: integer
            requires_special_char:
              default: false
              description: whether to require special character
              type: boolean
            requires_two_factor_auth:
              default: false
              description: whether to require two-factor auth
              type: boolean
          type: object
        pcap:
          properties:
            bucket:
              example: myorg-pcap
              type: string
            max_pkt_len:
              default: 128
              description: max_len of non-management packets to capture
              example: 128
              maximum: 128
              type: integer
          type: object
        pcap_bucket_verified:
          type: boolean
        remote_syslog:
          $ref: "#/components/schemas/remote_syslog"
        security:
          properties:
            disable_local_ssh:
              description: whether to disable local SSH (by default, local SSH is enabled with allow_mist in Org is enabled
              type: boolean
            fips_zeroize_password:
              description: password required to zeroize devices (FIPS) on site level
              example: NUKETHESITE
              type: string
            limit_ssh_access:
              default: false
              description: whether to allow certain SSH keys to SSH into the AP (see Site:Setting)
              type: boolean
          type: object
        simple_alert:
          $ref: "#/components/schemas/simple_alert"
        site_id:
          format: uuid
          readOnly: true
          type: string
        switch_mgmt:
          properties:
            ap_affinity_threshold:
              default: 12
              description: If the field is set in both site/setting and org/setting, the value from site/setting will be used.
              example: 10
              type: integer
          type: object
        tags:
          description: list of tags
          items:
            type: string
          type: array
        ui_idle_timeout:
          default: 0
          description: automatically logout the user when UI session is inactive. `0` means disabled
          example: 10
          maximum: 480
          minimum: 0
          type: integer
        vpn_options:
          properties:
            as_base:
              maximum: 4294967295
              minimum: 1
              type: integer
          type: object
      type: object
      x-examples:
        Example 1:
          auto_device_naming:
            enable: true
            rules:
              - expression: split(.)[1]
                model: string
                prefix: XX-
                src: name
                subnet: string
                suffix: -YY
                value: string
          auto_deviceprofile_assignment:
            enable: true
            rules:
              - expression: split(.)[1]
                model: string
                prefix: XX-
                src: name
                subnet: string
                suffix: -YY
                value: string
          auto_site_assignment:
            enable: true
            rules:
              - expression: split(.)[1]
                model: string
                prefix: XX-
                src: name
                subnet: string
                suffix: -YY
                value: string
          blacklist_url: https://papi.s3.amazonaws.com/blacklist/xxx...
          cacerts:
            - -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
          celona:
            api_key: $2a$04$OkaLCoJn6rDjR8ha.oduQVDST3.kJNIrte
            api_prefix: cc3273fcb016470e
          cloudshark:
            apitoken: accbd6f10c6d05c3
            url: https://cloudshark.hosted.domain
          cradlepoint:
            cp_api_id: 84446d61-2206-4ea5-855a-0043f980be54
            cp_api_key: 79c329da9893e34099c7d8ad5cb9c941
            ecm_api_id: 73446d61-2206-4ea5-855a-0043f980be62
            ecm_api_key: 68b329da9893e34099c7d8ad5cb9c940
          created_time: 0
          device_cert:
            cert: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
            key: -----BEGIN PRI...
          device_updown_threshold: 0
          disable_pcap: false
          for_site: true
          gateway_mgmt:
            app_probing:
              apps:
                - string
            app_usage: true
            tacacs:
              acct_servers:
                - host: string
                  port: 0
                  secret: string
                  timeout: 10
              enabled: true
              network: string
              tacplus_servers:
                - host: string
                  port: 0
                  secret: string
                  timeout: 10
          id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
          installer:
            allow_all_devices: true
            allow_all_sites: true
            extra_site_ids:
              - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            grace_period: 0
          juniper:
            accounts:
              - linked_by: string
                name: string
            customer_name: string
            linked: true
          mgmt:
            mxtunnel_ids:
              - 08cd7499-5841-51c8-e663-fb16b6f3b45e
            use_mxtunnel: false
            use_wxtunnel: false
          mist_nac:
            cacerts: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
            default_idp_id: string
            idps:
              - id: 4c441a74-d0de-32c4-78a7-a05e00d080ae
                realm:
                  - abc
            server_cert:
              cert: -----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE\n-----END CERTIFICATE-----
              key: -----BEGIN PRI...
          modified_time: 0
          msp_id: c0cf23fc-d82f-4219-988c-82fb61d8c875
          mxedge_mgmt:
            mist_password: string
            root_password: string
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          password_policy:
            enabled: false
            freshness: 60
            min_length: 8
            requires_special_char: false
            requires_two_factor_auth: false
          pcap:
            bucket: myorg-pcap
            max_pkt_len: 128
          pcap_bucket_verified: true
          remote_syslog:
            archive:
              files: 111
              size: 5m
            console:
              contents:
                - facility: any
                  severity: any
            enabled: false
            files:
              - archive:
                  files: 10
                  size: 5m
                contents:
                  - facility: any
                    severity: any
                explicit_priority: true
                file: file-name
                match: "!alarm|ntp|errors.crc_error[chan]"
                structured_data: true
            network: string
            send_to_all_servers: true
            servers:
              - contents:
                  - facility: any
                    severity: any
                explicit_priority: true
                facility: any
                host: syslogd.internal
                match: "!alarm|ntp|errors.crc_error[chan]"
                port: 514
                protocol: udp
                routing_instance: routing-instance-name
                severity: any
                source_address: string
                structured_data: true
                tag: string
            time_format: millisecond
            users:
              - contents:
                  - facility: any
                    severity: any
                match: '"!alarm|ntp|errors.crc_error[chan]"'
                user: "*"
          security:
            disable_local_ssh: true
            fips_zeroize_password: NUKETHESITE
            limit_ssh_access: false
          simple_alert:
            arp_failure:
              client_count: 10
              duration: 20
              incident_count: 10
            dhcp_failure:
              client_count: 10
              duration: 10
              incident_count: 20
            dns_failure:
              client_count: 20
              duration: 10
              incident_count: 30
          site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          switch_mgmt:
            ap_affinity_threshold: 10
          tags:
            - string
          ui_idle_timeout: 0
          vpn_options:
            as_base: 1
    orggroup:
      description: Organizations Group
      properties:
        created_time:
          readOnly: true
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        name:
          type: string
        org_ids:
          items:
            format: uuid
            type: string
          type: array
      required:
        - name
      type: object
      x-examples:
        example-1:
          created_time: 0
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          modified_time: 0
          msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          name: string
          org_ids:
            - string
    portal_template:
      description: Portal Template
      properties:
        accessCodeAlternateEmail:
          default: Please provide valid alternate email
          type: string
        alignment:
          description: defines alignment on portal. “left” is default.
          type: string
        authButtonAmazon:
          default: Sign in with Amazon
          description: label for Amazon auth button
          type: string
        authButtonAzure:
          default: Sign in with Azure
          description: label for Azure auth button
          type: string
        authButtonEmail:
          default: Sign in with Email
          description: label for Email auth button
          type: string
        authButtonFacebook:
          default: Sign in with Facebook
          description: label for Facebook auth button
          type: string
        authButtonGoogle:
          default: Sign in with Google
          description: label for Google auth button
          type: string
        authButtonMicrosoft:
          default: Sign in with Microsoft
          description: label for Microsoft auth button
          type: string
        authButtonPassphrase:
          description: label for passphrase auth button
          type: string
        authButtonSms:
          default: Sign in with Text Message
          description: label for SMS auth button
          type: string
        authButtonSponsor:
          default: Sign in as Guest
          description: label for Sponsor auth button
          type: string
        authLabel:
          default: “Connect to WiFi with”
          type: string
        backLink:
          default: Go back and edit request form
          description: label of the link to go back to /logon
          type: string
        color:
          default: “#1074bc”
          type: string
        colorDark:
          default: “#0b5183”
          type: string
        colorLight:
          default: “#3589c6”
          type: string
        company:
          default: false
          description: whether company field is required
          type: boolean
        companyError:
          default: Please provide company name
          description: error message when company not provided
          type: string
        companyLabel:
          default: Company
          description: label of company field
          type: string
        created_time:
          readOnly: true
          type: number
        email:
          default: false
          description: whether email field is required
          type: boolean
        emailAccessDomainError:
          default: Access is restricted by email domain
          description: error message when a user has valid social login but doesn’t match specified email domains.
          type: string
        emailCancel:
          default: Cancel
          type: string
        emailCodeError:
          default: Please provide valid alternate email
          type: string
        emailError:
          default: Please provide valid email
          description: error message when email not provided
          type: string
        emailFieldLabel:
          default: Enter your email address
          type: string
        emailLabel:
          default: Email
          description: label of email field
          type: string
        emailMessage:
          default: We will email you an authentication code which you can use to connect to the WiFi network.
          type: string
        emailSubmit:
          default: “Send Access Code”
          type: string
        emailTitle:
          default: “Sign in with Email”
          type: string
        field1:
          default: false
          description: whether to ask field1
          type: boolean
        field1Error:
          default: Please provide field1
          description: error message when field1 not provided
          type: string
        field1Label:
          default: Custom1
          description: label of field1
          type: string
        field1Required:
          default: false
          description: whether field1 is required field
          type: boolean
        field2:
          default: false
          description: whether to ask field2
          type: boolean
        field2Error:
          default: Please provide field2
          description: error message when field2 not provided
          type: string
        field2Label:
          default: Custom2
          description: label of field2
          type: string
        field2Required:
          default: false
          description: whether field2 is required field
          type: boolean
        field3:
          default: false
          description: whether to ask field3
          type: boolean
        field3Error:
          default: Please provide field3
          description: error message when field3 not provided
          type: string
        field3Label:
          default: Custom3
          description: label of field3
          type: string
        field3Required:
          default: false
          description: whether field3 is required field
          type: boolean
        field4:
          default: false
          description: whether to ask field4
          type: boolean
        field4Error:
          default: Please provide field4
          description: error message when field4 not provided
          type: string
        field4Label:
          default: Custom4
          description: label of field4
          type: string
        field4Required:
          default: false
          description: whether field4 is required field
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        message:
          default: Please enjoy the complimentary Wifi
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          default: false
          description: whether name field is required
          type: boolean
        nameError:
          default: Please provide your name
          description: error message when name not provided
          type: string
        nameLabel:
          default: Name
          description: label of name field
          type: string
        optout:
          description: whether to display “Do Not Store My Personal Information”
          type: boolean
        optoutLabel:
          default: Do Not Store My Personal Information
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        pageTitle:
          default: Welcome
          type: string
        passphraseCancel:
          default: Cancel
          type: string
        passphraseError:
          default: Invalid Passphrase
          description: error message when invalid passphrase is provided
          type: string
        passphraseLabel:
          default: Passphrase
          type: string
        passphraseMessage:
          default: Login using passphrase
          type: string
        passphraseSubmit:
          default: Sign in
          type: string
        passphraseTitle:
          default: Sign in with Passphrase
          description: Title for passphrase details page
          type: string
        poweredBy:
          default: true
          description: whether to show “Powered by Mist”
          type: boolean
        requiredFieldLabel:
          default: required
          description: label to denote required field
          type: string
        signInLabel:
          default: Sign In
          description: label of the button to /signin
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        smsCarrierDefault:
          default: Please Select
          type: string
        smsCarrierError:
          default: Please select a mobile carrier
          type: string
        smsCarrierFieldLabel:
          default: Mobile Carrier
          description: label for mobile carrier drop-down list
          type: string
        smsCodeCancel:
          default: Cancel
          description: Label for cancel confirmation code submission
          type: string
        smsCodeError:
          default: Invalid Access Code
          description: error message when confirmation code is invalid
          type: string
        smsCodeFieldLabel:
          default: Confirmation Code
          type: string
        smsCodeMessage:
          default: Enter the confirmation code
          type: string
        smsCodeSubmit:
          default: Submit Code
          description: Label for confirmation code submit button
          type: string
        smsCodeTitle:
          default: Access Code
          type: string
        smsCountryFieldLabel:
          description: “Country Code”
          type: string
        smsCountryFormat:
          default: “+1”
          type: string
        smsHaveAccessCode:
          default: I have an access code
          description: Label for checkbox to specify that the user has access code
          type: string
        smsMessageFormat:
          default: Code {{code}} expires in {{duration}} minutes.
          description: format of access code sms message. {{code}} and {{duration}} are place holders and should be retained as is.
          type: string
        smsNumberCancel:
          default: Cancel
          description: label for canceling mobile details for SMS auth
          type: string
        smsNumberError:
          default: Invalid Mobile Number
          type: string
        smsNumberFieldLabel:
          default: Mobile Number
          description: label for field to provide mobile number
          type: string
        smsNumberFormat:
          default: “2125551212 (digits only)”
          type: string
        smsNumberMessage:
          default: We will send an access code to your mobile number which you can use to connect to the WiFi network. Message and data rates may apply.
          type: string
        smsNumberSubmit:
          default: Sign In
          description: label for submit button for code generation
          type: string
        smsNumberTitle:
          default: Text Message Confirmation
          description: Title for phone number details
          type: string
        smsUsernameFormat:
          default: username
          type: string
        smsValidityDuration:
          default: 5
          description: how long confirmation code should be considered valid (in minutes)
          type: number
        sponsorAutoApproved:
          default: Your request was approved.
          type: string
        sponsorAutoApprovedNote:
          default: Your notification has been sent to
          type: string
        sponsorBackLink:
          default: Go back and edit request form
          type: string
        sponsorCancel:
          default: Cancel
          type: string
        sponsorEmail:
          default: Please provide valid sponsor email
          description: label for Sponsor Email
          type: string
        sponsorEmailError:
          default: Please provide valid sponsor email
          type: string
        sponsorEmailTemplate:
          description: “html template to replace/override default sponsor email template”
          type: string
        sponsorInfoApproved:
          default: Your request was approved by
          type: string
        sponsorInfoDenied:
          default: Your request was denied by
          type: string
        sponsorInfoPending:
          default: Your notification has been sent to
          type: string
        sponsorName:
          default: Sponsor Name
          description: label for Sponsor Name
          type: string
        sponsorNameError:
          default: Please provide sponsor’s name
          type: string
        sponsorNotePending:
          default: Please wait for them to acknowledge.
          type: string
        sponsorStatusApproved:
          default: Your request was approved
          description: text to display if sponsor approves request
          type: string
        sponsorStatusDenied:
          default: Your request was denied
          description: text to display when sponsor denies request
          type: string
        sponsorStatusPending:
          default: Notification Sent
          description: text to display if request is still pending
          type: string
        sponsorSubmit:
          default: Notify Sponsor
          description: submit button label to notify sponsor about guest request
          type: string
        sponsorsAutoApprovedNote:
          default: Your notification has been sent to the sponsors."
          type: string
        sponsorsError:
          default: Please select a sponsor
          type: string
        tos:
          default: true
          type: boolean
        tosAcceptLabel:
          default: I accept the Terms of Service
          description: prefix of the label of the link to go to /tos
          type: string
        tosError:
          default: Please review and accept terms of service
          description: error message when tos not accepted
          type: string
        tosLink:
          default: Terms of Service
          description: label of the link to go to /tos
          type: string
        tosText:
          default: terms of service
          description: text of the Terms of Service
          type: string
      required:
        - pageTitle
      type: object
      x-examples:
        example-1:
          accessCodeAlternateEmail: string
          alignment: string
          authButtonAmazon: string
          authButtonAzure: string
          authButtonEmail: string
          authButtonFacebook: string
          authButtonGoogle: string
          authButtonMicrosoft: string
          authButtonPassphrase: string
          authButtonSms: string
          authButtonSponsor: string
          authLabel: string
          backLink: string
          color: string
          colorDark: string
          colorLight: string
          company: true
          companyError: string
          companyLabel: string
          created_time: 0
          email: true
          emailAccessDomainError: string
          emailCancel: string
          emailCodeError: string
          emailError: string
          emailFieldLabel: string
          emailLabel: string
          emailMessage: string
          emailSubmit: string
          emailTitle: string
          field1: true
          field1Error: string
          field1Label: string
          field1Required: true
          field2: true
          field2Error: string
          field2Label: string
          field2Required: true
          field3: true
          field3Error: string
          field3Label: string
          field3Required: true
          field4: true
          field4Error: string
          field4Label: string
          field4Required: true
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          message: string
          modified_time: 0
          name: true
          nameError: string
          nameLabel: string
          optout: true
          optoutLabel: string
          org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          pageTitle: string
          passphraseCancel: string
          passphraseError: string
          passphraseLabel: string
          passphraseMessage: string
          passphraseSubmit: string
          passphraseTitle: string
          poweredBy: true
          requiredFieldLabel: string
          signInLabel: string
          site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          smsCarrierDefault: string
          smsCarrierError: string
          smsCarrierFieldLabel: string
          smsCodeCancel: string
          smsCodeError: string
          smsCodeFieldLabel: string
          smsCodeMessage: string
          smsCodeSubmit: string
          smsCodeTitle: string
          smsCountryFieldLabel: string
          smsCountryFormat: string
          smsHaveAccessCode: string
          smsMessageFormat: string
          smsNumberCancel: string
          smsNumberError: string
          smsNumberFieldLabel: string
          smsNumberFormat: string
          smsNumberMessage: string
          smsNumberSubmit: string
          smsNumberTitle: string
          smsUsernameFormat: string
          smsValidityDuration: 0
          sponsorBackLink: string
          sponsorCancel: string
          sponsorEmail: string
          sponsorEmailError: string
          sponsorEmailTemplate: string
          sponsorInfoApproved: string
          sponsorInfoDenied: string
          sponsorInfoPending: string
          sponsorName: string
          sponsorNameError: string
          sponsorNotePending: string
          sponsorStatusApproved: string
          sponsorStatusDenied: string
          sponsorStatusPending: string
          sponsorSubmit: string
          tos: true
          tosAcceptLabel: string
          tosError: string
          tosLink: string
          tosText: string
        example-2:
          accessCodeAlternateEmail: Use alternate email address
          alignment: left
          authButtonAmazon: Sign in with Amazon
          authButtonAzure: Sign in with Azure
          authButtonEmail: Sign in with Email
          authButtonFacebook: Sign in with Facebook
          authButtonGoogle: Sign in with Google
          authButtonMicrosoft: Sign in with Microsoft
          authButtonPassphrase: Sign in with Passphrase
          authButtonSms: Sign in with Text Message
          authButtonSponsor: Sign in as Guest
          authLabel: Connect to WIFI with
          backLink: Back to Sign In
          color: "#1074bc"
          colorDark: "#0b5183"
          colorLight: "#3589c6"
          company: true
          companyError: Please provide company name
          companyLabel: Company
          created_time: 1594743745
          email: true
          emailAccessDomainError: Access is restricted by email domain
          emailCancel: Cancel
          emailCodeError: Please provide valid alternate email
          emailError: Please provide valid email
          emailFieldLabel: Enter your email address
          emailLabel: Email
          emailMessage: We will email you an authentication code which you can use to connect to the WiFi network.
          emailSubmit: Send Access Code
          emailTitle: Sign in with Email
          field1: true
          field1Error: Please provide field1
          field1Label: Custom1
          field1Required: true
          field2: true
          field2Error: Please provide field2
          field2Label: Custom1
          field2Required: false
          field3: true
          field3Error: Please provide field3
          field3Label: Custom1
          field3Required: false
          field4: true
          field4Error: Please provide field4
          field4Label: Custom1
          field4Required: false
          id: 2912c80f-xxxx-xxxx-xxxx-878714831887
          message: Please enjoy the complimentary Wifi
          modified_time: 1594743745
          name: true
          nameError: Please provide your name
          nameLabel: Name
          optout: false
          optoutLabel: Do not store
          org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          pageTitle: Welcome
          passphraseCancel: Cancel
          passphraseError: Invalid Passphrase
          passphraseLabel: Passphrase
          passphraseMessage: Enter the secret passphrase to access the WiFi network.
          passphraseSubmit: Sign In
          passphraseTitle: Sign in with Passphrase
          poweredBy: true
          requiredFieldLabel: required
          signInLabel: Sign In
          site_id: f5fcbee5-xxxx-xxxx-xxxx-1619ede87879
          smsCarrierDefault: Please Select
          smsCarrierError: Please select a mobile carrier
          smsCarrierFieldLabel: Mobile Carrier
          smsCodeCancel: Cancel
          smsCodeError: Invalid Access Code
          smsCodeFieldLabel: Confirmation Code
          smsCodeMessage: Enter the confirmation code
          smsCodeSubmit: Sumbit Code
          smsCodeTitle: Access Code
          smsCountryFieldLabel: Country Code
          smsCountryFormat: "+1"
          smsHaveAccessCode: I have an access code
          smsMessageFormat: Code {{code}} expires in {{duration}} minutes.
          smsNumberCancel: Cancel
          smsNumberError: Invalid Mobile Number
          smsNumberFieldLabel: Mobile Number
          smsNumberFormat: 2125551212 (digits only)
          smsNumberMessage: We will send an access code to your mobile number which you can use to connect to the WiFi network. Message and data rates may apply.
          smsNumberSubmit: Sign In
          smsNumberTitle: Text Message Confirmation
          smsUsernameFormat: username
          smsValidityDuration: 5
          sponsorBackLink: Go back and edit request form
          sponsorCancel: Cancel
          sponsorEmail: Sponsor Email
          sponsorEmailError: Please provide valid sponsor email
          sponsorEmailTemplate: <html template to replace/override default sponsor email template>
          sponsorInfoApproved: Your request was approved by
          sponsorInfoDenied: Your request was denied by
          sponsorInfoPending: Your notification has been sent to
          sponsorName: Sponsor Name
          sponsorNameError: Please provide sponsor name
          sponsorNotePending: Please wait for them to acknowledge.
          sponsorStatusApproved: Your request was approved
          sponsorStatusDenied: Your request was denied
          sponsorStatusPending: Notification Sent
          sponsorSubmit: Notify Sponsor
          tos: true
          tosAcceptLabel: I accept the Terms of Service
          tosError: Please review and accept terms of service
          tosLink: Terms of Service
          tosText: terms of service
    privileges:
      description: Privilieges settings
      properties:
        for_site:
          readOnly: true
          type: boolean
        msp_id:
          description: id of the MSP (if the org belongs to an MSP)
          format: uuid
          nullable: true
          type: string
        msp_logo_url:
          description: logo of the MSP (if the MSP belongs to an Advanced tier)
          type: string
        msp_name:
          description: name of the MSP (if the org belongs to an MSP)
          nullable: true
          type: string
        msp_url:
          description: custom url of the MSP (if the MSP belongs to an Advanced tier)
          type: string
        name:
          description: name of the org/site/MSP depending on object scope
          type: string
        org_id:
          description: id of the org
          format: uuid
          nullable: true
          type: string
        org_name:
          description: name of the org (for a site belonging to org)
          type: string
        orggroup_ids:
          description: list of orggroup ids (if the org belongs to an MSP)
          items:
            format: uuid
            type: string
          type: array
        role:
          description: access permissions
          enum:
            - admin
            - write
            - read
            - helpdesk
            - installer
          type: string
        scope:
          description: list of privileges the admin has on the MSP / OrgGroups / Orgs / Sites
          enum:
            - org
            - site
            - msp
            - orggroup
          type: string
        site_id:
          description: id of the site
          format: uuid
          nullable: true
          type: string
        sitegroup_ids:
          description: list of sitegroup ids
          items:
            format: uuid
            type: string
          type: array
        views:
          description: |-
            Custom roles restrict Org users to specific UI views. This is useful for limiting UI access of Org users.

            You can invite a new user or update existing users in your Org to this custom role. For this, specify view along with role when assigning privileges.

            Below are the list of supported UI views. Note that this is UI only feature
            Custom roles restrict Org users to specific UI views. This is useful for limiting UI access of Org users.

            You can invite a new user or update existing users in your Org to this custom role. For this, specify `view` along with `role` when assigning privileges.

            Below are the list of supported UI views. Note that this is UI only feature

            | UI View | Description |
            | --- | --- |
            | `reporting` | full access to all analytics tools |
            | `marketing` | can view analytics and location maps |
            | `location` | can view and manage location maps |
            | `security` | can view and manage WLAN, rogues and authentication |
            | `switch_admin` | can view and manage Switch ports |
            | `mxedge_admin` | can view and manage Mist edges and Mist tunnels |
            | `lobby_admin` | full access to Org and Site Pre-shared keys |
          items:
            type: string
          type: array
      required:
        - role
        - scope
      title: ""
      type: object
      x-examples:
        example-1:
          msp_id: 9520c63a-f7b3-670c-0944-727774d5a722
          msp_name: MSP
          name: TestCompany
          org_id: 9ff00eec-24f0-44d7-bda4-6238c81376ee
          orggroup_ids:
            - 9ff00eec-24f0-44d7-bda4-6238c81376ee
          role: admin
          scope: org
        example-2:
          name: Mist Office
          org_id: 9ff00eec-24f0-44d7-bda4-6238c81376ee
          org_name: TestCompany
          role: admin
          scope: site
          site_id: d96e3952-53e8-4266-959a-45acd55f5114
          sitegroup_ids:
            - 581328b6-e382-f54e-c9dc-999983183a34
        example-3:
          msp_id: 9520c63a-f7b3-670c-0944-727774d5a722
          name: MSP
          role: admin
          scope: msp
    psk:
      description: PSK
      properties:
        admin_sso_id:
          description: sso id for psk created from psk portal
          readOnly: true
          type: string
        created_time:
          readOnly: true
          type: number
        email:
          description: email to send psk expiring notifications to
          type: string
        expire_time:
          default: null
          description: Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
          example: 1614990263
          nullable: true
          type: integer
        expiry_notification_time:
          description: Number of days before psk is expired. Used as to when to start sending reminder notification when the psk is about to expire
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        mac:
          description: if `usage`==`single`, the mac that this PSK ties to, empty if `auto-binding`
          type: string
        max_usage:
          default: 0
          description: For Org PSK Only. Max concurrent users for this PSK key. Default is 0 (unlimited)
          type: integer
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        note:
          type: string
        notify_expiry:
          default: false
          description: If set to true, reminder notification will be sent when psk is about to expire
          type: boolean
        notify_on_create_or_edit:
          description: If set to true, notification will be sent when psk is created or edited
          type: boolean
        old_passphrase:
          description: previous passphrase of the PSK if it has been rotated
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        passphrase:
          description: passphrase of the PSK (8-63 character or 64 in hex)
          maxLength: 64
          minLength: 8
          type: string
        role:
          maxLength: 32
          minLength: 0
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        ssid:
          description: SSID this PSK should be applicable to
          type: string
        usage:
          default: multi
          enum:
            - multi
            - single
          type: string
        vlan_id:
          description: VLAN for this PSK key
          type: integer
      required:
        - name
        - passphrase
        - ssid
      type: object
      x-examples:
        example-1:
          created_time: 0
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          mac: string
          modified_time: 0
          name: string
          passphrase: stringst
          ssid: string
          usage: multi
          vlan_id: 1
    psk_portal:
      properties:
        auth:
          default: sso
          description: "Note: `sponsor` not yet available"
          enum:
            - sso
            - sponsor
          type: string
        bg_image_url:
          type: string
        cleanup_psk:
          default: false
          description: used to cleanup exited psk when portal delete or ssid changed
          type: boolean
        created_time:
          readOnly: true
          type: integer
        expire_time:
          description: unit min
          type: integer
        expiry_notification_time:
          description: Number of days before psk is expired. Used as to when to start sending reminder notification when the psk is about to expire
          type: integer
        hide_psks_created_by_other_admins:
          default: false
          description: only if `type`==`admin`
          type: boolean
        id:
          readOnly: true
          type: string
        max_usage:
          default: 0
          description: "`max_usage`==`0` means unlimited"
          type: integer
        modified_time:
          readOnly: true
          type: integer
        name:
          type: string
        notify_expiry:
          description: If set to true, reminder notification will be sent when psk is about to expire
          type: boolean
        notify_on_create_or_edit:
          default: false
          type: boolean
        org_id:
          readOnly: true
          type: string
        passphrase_rules:
          properties:
            alphaberts_enabled:
              default: true
              type: boolean
            length:
              maximum: 63
              minimum: 8
              type: integer
            max_length:
              description: |-
                for valid `max_length` and `min_length`, passphrase size is set randomly from that range.
                - if `max_length` and/or `min_length` are invalid, passphrase size is equal to `length` parameter
                - if `length` is not set or is invalid, default passphrase size is 8.
                valid `max_length`, `min_length`, `length` should be an integer between 8 to 63. Also, `max_length` > `min_length`
              maximum: 63
              minimum: 8
              type: integer
            min_length:
              description: |-
                for valid `max_length` and `min_length`, passphrase size is set randomly from that range.
                - if `max_length` and/or `min_length` are invalid, passphrase size is equal to `length` parameter
                - if `length` is not set or is invalid, default passphrase size is 8.
                valid `max_length`, `min_length`, `length` should be an integer between 8 to 63. Also, `max_length` > `min_length`
              maximum: 63
              minimum: 8
              type: integer
            numerics_enabled:
              default: true
              type: boolean
            symbols:
              example: ()[]{}_%@#&$
              type: string
            symbols_enabled:
              default: true
              type: boolean
          type: object
        required_fields:
          description: what information to ask for (email is required by default)
          items:
            type: string
          type: array
        role:
          type: string
        ssid:
          description: intended SSID
          type: string
        sso:
          description: if `auth`==`sso`
          properties:
            allowed_roles:
              description: // allowed roles for accessing psk portal, if none, any role is permitted
              items:
                type: string
              type: array
            idp_cert:
              type: string
            idp_sign_algo:
              type: string
            idp_sso_url:
              type: string
            issuer:
              type: string
            nameid_format:
              type: string
            role_mapping:
              additionalProperties:
                type: string
              description: Property key is the role name, property value is the SSO Attribute
              type: object
            use_sso_role_for_psk_role:
              description: if enabled, the `role` above will be ignored
              type: boolean
          type: object
        template_url:
          description: UI customization
          type: string
        thumbnail_url:
          type: string
        type:
          description: for personal psk portal
          enum:
            - byod
            - admin
          type: string
        vlan_id:
          type: integer
      required:
        - name
        - ssid
      type: object
      x-examples:
        example-1:
          auth: sso
          expire: 1440
          max_usage: 20
          name: get-wifi
          required_fields:
            - name
          role: ""
          ssid: Corp
          sso:
            default_role: guest
            forced_role: desired
            idp_cert: |-
              -----BEGIN CERTIFICATE-----
              MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
              -----END CERTIFICATE-----
            idp_sign_algo: sha256
            idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
            issuer: https://app.onelogin.com/saml/metadata/138130
            nameid_format: email
          sso_required_role: Admin
          template_url: ""
          type: admin
          vlan_id: 417
    radsec:
      description: Radsec settings
      properties:
        enabled:
          type: boolean
        idle_timeout:
          type: integer
        mxcluster_ids:
          description: |-
            To use Org mxedges when this WLAN does not use mxtunnel, specify their mxcluster_ids.
            Org mxedge(s) identified by mxcluster_ids
          items:
            format: uuid
            type: string
          type: array
        server_name:
          description: name of the server to verify (against the cacerts in Org Setting). Only if not Mist Edge.
          type: string
        servers:
          description: List of Radsec Servers. Only if not Mist Edge.
          items:
            properties:
              host:
                type: string
              port:
                type: integer
            type: object
          type: array
          uniqueItems: true
        use_mxedge:
          description: use mxedge(s) as radsecproxy
          type: boolean
        use_site_mxedge:
          default: false
          description: To use Site mxedges when this WLAN does not use mxtunnel
          type: boolean
      type: object
    remote_syslog:
      properties:
        archive:
          properties:
            files:
              example: 111
              type: integer
            size:
              example: 5m
              type: string
          type: object
        console:
          properties:
            contents:
              items:
                properties:
                  facility:
                    enum:
                      - any
                      - authorization
                      - conflict-log
                      - change-log
                      - daemon
                      - dfc
                      - kernel
                      - interactive-commands
                      - ftp
                      - firewall
                      - external
                      - pfe
                      - ntp
                      - security
                      - user
                    type: string
                  severity:
                    enum:
                      - any
                      - alert
                      - emergency
                      - critical
                      - warning
                      - info
                      - notice
                      - error
                    type: string
                type: object
              type: array
          type: object
        enabled:
          default: false
          type: boolean
        files:
          items:
            properties:
              archive:
                properties:
                  files:
                    example: 10
                    type: integer
                  size:
                    example: 5m
                    type: string
                type: object
              contents:
                items:
                  properties:
                    facility:
                      enum:
                        - any
                        - authorization
                        - conflict-log
                        - change-log
                        - daemon
                        - dfc
                        - kernel
                        - interactive-commands
                        - ftp
                        - firewall
                        - external
                        - pfe
                        - ntp
                        - security
                        - user
                      type: string
                    severity:
                      enum:
                        - any
                        - alert
                        - emergency
                        - critical
                        - warning
                        - info
                        - notice
                        - error
                      type: string
                  type: object
                type: array
              explicit_priority:
                type: boolean
              file:
                example: file-name
                type: string
              match:
                example: "!alarm|ntp|errors.crc_error[chan]"
                type: string
              structured_data:
                type: boolean
            type: object
          type: array
        network:
          description: if source_address is configured, will use the vlan firstly otherwise use source_ip
          type: string
        send_to_all_servers:
          default: true
          type: boolean
        servers:
          items:
            properties:
              contents:
                items:
                  properties:
                    facility:
                      enum:
                        - any
                        - authorization
                        - conflict-log
                        - change-log
                        - daemon
                        - dfc
                        - kernel
                        - interactive-commands
                        - ftp
                        - firewall
                        - external
                        - pfe
                        - ntp
                        - security
                        - user
                      type: string
                    severity:
                      enum:
                        - any
                        - alert
                        - emergency
                        - critical
                        - warning
                        - info
                        - notice
                        - error
                      type: string
                  type: object
                type: array
              explicit_priority:
                type: boolean
              facility:
                enum:
                  - any
                  - authorization
                  - conflict-log
                  - change-log
                  - daemon
                  - dfc
                  - kernel
                  - interactive-commands
                  - ftp
                  - firewall
                  - external
                  - pfe
                  - ntp
                  - security
                  - user
                type: string
              host:
                example: syslogd.internal
                type: string
              match:
                example: "!alarm|ntp|errors.crc_error[chan]"
                type: string
              port:
                default: 514
                type: integer
              protocol:
                default: udp
                enum:
                  - udp
                  - tcp
                type: string
              routing_instance:
                example: routing-instance-name
                type: string
              severity:
                enum:
                  - any
                  - alert
                  - emergency
                  - critical
                  - warning
                  - info
                  - notice
                  - error
                type: string
              source_address:
                description: if source_address is configured, will use the vlan firstly otherwise use source_ip
                type: string
              structured_data:
                type: boolean
              tag:
                type: string
            type: object
          type: array
        time_format:
          enum:
            - millisecond
            - year
            - year millisecond
          type: string
        users:
          items:
            properties:
              contents:
                items:
                  properties:
                    facility:
                      enum:
                        - any
                        - authorization
                        - conflict-log
                        - change-log
                        - daemon
                        - dfc
                        - kernel
                        - interactive-commands
                        - ftp
                        - firewall
                        - external
                        - pfe
                        - ntp
                        - security
                        - user
                      type: string
                    severity:
                      enum:
                        - any
                        - alert
                        - emergency
                        - critical
                        - warning
                        - info
                        - notice
                        - error
                      type: string
                  type: object
                type: array
              match:
                example: '"!alarm|ntp|errors.crc_error[chan]"'
                type: string
              user:
                example: "*"
                type: string
            type: object
          type: array
      type: object
      x-examples:
        example-1:
          archive:
            files: 111
            size: 5m
          console:
            contents:
              - facility: any | authorization | conflict-log | change-log | daemon | dfc | kernel | interactive-commands | ftp | firewall | external | pfe | ntp | security | user
                severity: any | alert | emergency | critical | warning | info | notice | error
          enabled: true
          files:
            - archive:
                files: 10
                size: 5m
              contents:
                - facility: any | authorization | conflict-log | change-log | daemon | dfc | kernel | interactive-commands | ftp | firewall | external | pfe | ntp | security | user
                  severity: any | alert | emergency | critical | warning | info | notice | error
              explicit_priority: true
              file: file-name
              match: "!alarm|ntp|errors.crc_error[chan]"
              structured_data: true
          network: default
          send_to_all_servers: true
          servers:
            - contents:
                - facility: any | authorization | conflict-log | change-log | daemon | dfc | kernel | interactive-commands | ftp | firewall | external | pfe | ntp | security | user
                  severity: any | alert | emergency | critical | warning | info | notice | error
              explicit_priority: true
              facility: config
              host: syslogd.internal
              match: "!alarm|ntp|errors.crc_error[chan]"
              port: 514
              protocol: udp
              routing_instance: routing-instance-name
              severity: info
              source_address: 192.168.1.1
              structured_data: true
              tag: ""
          time_format: millisecond | year |  year millisecond
          users:
            - contents:
                - facility: any | authorization | conflict-log | change-log | daemon | dfc | kernel | interactive-commands | ftp | firewall | external | pfe | ntp | security | user
                  severity: any | alert | emergency | critical | warning | info | notice | error
              match: "!alarm|ntp|errors.crc_error[chan]"
              user: "*"
    response_inventory:
      properties:
        added:
          items:
            type: string
          type: array
        duplicated:
          items:
            type: string
          type: array
        error:
          items:
            type: string
          type: array
        inventory_added:
          items:
            properties:
              mac:
                type: string
              magic:
                type: string
              model:
                type: string
              serial:
                type: string
              type:
                type: string
            required:
              - mac
              - magic
              - model
              - serial
              - type
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        inventory_duplicated:
          items:
            properties:
              mac:
                type: string
              magic:
                type: string
              model:
                type: string
              serial:
                type: string
              type:
                type: string
            required:
              - mac
              - magic
              - model
              - serial
              - type
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      readOnly: true
      type: object
      x-examples:
        example-1:
          added:
            - string
          duplicated:
            - string
          error:
            - string
          inventory_added:
            - mac: string
              magic: string
              model: string
              serial: string
              type: string
          inventory_duplicated:
            - mac: string
              magic: string
              model: string
              serial: string
              type: string
    rfdiag:
      description: RF Diag
      properties:
        duration:
          default: 180
          description: recording length in seconds, max is 180. Default value is also 180.
          maximum: 180
          type: integer
        mac:
          description: if `type`==`client` or `asset`, mac of the device
          type: string
        name:
          description: name of the recording, the name of the sdk client would be a good default choice
          type: string
        sdkclient_id:
          description: if `type`==`sdkclient`, sdkclient_id of this recording
          format: uuid
          type: string
        type:
          description: sdkclient / client/ asset
          enum:
            - sdkclient
            - client
            - asset
          type: string
      required:
        - name
        - type
      type: object
      x-examples:
        example-1:
          duration: 120
          name: Troubleshooting
          sdkclient_id: de87bf9d-183f-e383-cc68-6ba43947d403
          type: sdkclient
    rfdiag.response:
      description: RF Diag response
      items:
        properties:
          asset_id:
            description: if `type`==`asset`, id of the asset
            format: uuid
            type: string
          asset_name:
            description: if `type`==`asset`, name of the asset
            type: string
          client_name:
            description: if `type`==`client`, hostname of the client
            type: string
          duration:
            description: recording length in seconds, max is 120
            type: integer
          end_time:
            description: timestamp of end of recording
            type: integer
          frame_count:
            description: Number of frames in the output
            type: integer
          id:
            readOnly: true
            type: string
          mac:
            description: if `type`==`client` or `asset`, mac of the device
            type: string
          map_id:
            format: uuid
            type: string
          name:
            type: string
          next:
            description: Optional. id of the next recoding if present. Only valid for site survey.
            type: string
          raw_events:
            description: URL to a JSON file that contains array of raw location diag events
            type: string
          ready:
            description: whether it’s ready for playback
            type: boolean
          sdkclient_id:
            description: if `type`==`sdkclient`, sdkclient_id of this recording
            format: uuid
            type: string
          sdkclient_name:
            description: if `type`==`sdkclient`, name of the sdkclient
            type: string
          sdkclient_uuid:
            description: if `type`==`sdkclient`, device_id of sdkclient
            format: uuid
            type: string
          start_time:
            description: timestamp of the recording (the start)
            type: integer
          type:
            description: sdkclient / client / asset
            enum:
              - sdkclient
              - client
              - asset
            type: string
          url:
            description: URL to a JSON file that contains an array of frames, each frame is the same format
            type: string
        required:
          - name
          - type
          - map_id
          - url
          - raw_events
          - start_time
          - end_time
          - duration
          - frame_count
          - ready
        type: object
      minItems: 1
      type: array
      uniqueItems: true
      x-examples:
        example-1:
          - duration: 60
            end_time: 1476990204
            frame_count: 12
            id: 8b944030-04cd-4f91-d61c-3557bb088cad
            map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
            name: Troubleshooting
            next: 8b944179-04cd-4f91-d61c-3557bb08813d
            raw_events: https://s3.amazon.com/.../raw-events.json
            ready: true
            sdkclient_id: de87bf9d-183f-e383-cc68-6ba43947d403
            sdkclient_name: app-client
            sdkclient_uuid: 5b3ee6be-5b7c-11e7-b288-346895ed1b7d
            start_time: 1476990144
            type: sdkclient
            url: https://s3.amazon.com/.../frames.json
    rftemplate:
      description: RF Template
      properties:
        ant_gain_24:
          type: integer
        ant_gain_5:
          type: integer
        band_24:
          $ref: "#/components/schemas/ap_radio_band"
        band_24_usage:
          default: "24"
          description: If `band_24_usage`==`5`, by default, `band_5` properties is used, if specific channel/bandwidth/power/... If desired, use `band_5_on_24_radio`
          enum:
            - "24"
            - "5"
            - auto
          type: string
        band_5:
          $ref: "#/components/schemas/ap_radio_band"
        band_5_on_24_radio:
          $ref: "#/components/schemas/ap_radio_band"
        country_code:
          description: optional, country code to use. If specified, this gets applied to all sites using the RF Template
          type: string
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        model_specific:
          additionalProperties:
            properties:
              band_24:
                $ref: "#/components/schemas/ap_radio_band"
              band_5:
                $ref: "#/components/schemas/ap_radio_band"
            type: object
          description: overwrites for a specific model. If a band is specified, it will shadow the default. The property key is the model name (e.g. "AP63")
          type: object
        modified_time:
          readOnly: true
          type: number
        name:
          description: The name of the RF template
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        scanning_enabled:
          description: whether scanning radio is enabled
          type: boolean
        site_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          band_24:
            bandwidth: 20
            channels:
              - 1
              - 6
              - 11
            disabled: false
            power: 16
          band_5:
            bandwidth: 40
            disabled: false
            power: 0
            power_max: 18
            power_min: 10
            preamble: short
          country_code: US
          model_specific:
            AP61:
              band_5:
                bandwidth: 40
                channels:
                  - 100
                  - 104
                disabled: false
                power: 0
          name: 5G-Restricted
    rrm:
      description: RRM
      properties:
        band_24:
          additionalProperties:
            $ref: "#/components/schemas/rrm_band"
          description: proposal on band 2.4G, key is ap_id, value is the proposal
          type: object
        band_24_metric:
          $ref: "#/components/schemas/rrm_band_metric"
        band_5:
          additionalProperties:
            $ref: "#/components/schemas/rrm_band"
          description: proposal on band 5G, key is ap_id, value is the proposal
          type: object
        band_5_metric:
          $ref: "#/components/schemas/rrm_band_metric"
        band_6:
          additionalProperties:
            $ref: "#/components/schemas/rrm_band"
          description: proposal on band 6G, key is ap_id, value is the proposal
          type: object
        band_6_metric:
          $ref: "#/components/schemas/rrm_band_metric"
        rftemplate:
          $ref: "#/components/schemas/rftemplate"
        rftemplate_id:
          format: uuid
          type: string
        rftemplate_name:
          type: string
        status:
          enum:
            - unknown
            - updating
            - ready
          type: string
        timestamp:
          description: time where the status was updated
          type: number
      required:
        - band_24
        - band_24_metric
        - band_5
        - band_5_metric
        - rftemplate
        - rftemplate_id
        - rftemplate_name
        - status
        - timestamp
      type: object
      x-examples:
        example-1:
          band_24: {}
          band_24_metric:
            avg_aps_per_channel: 0.6666666666666666
            channel_distribution_uniformity: 1
            cochannel_neighbors: 0
            density: 0.05
            naps_by_channel:
              "1": 1
              "11": 1
            naps_by_power:
              "6": 2
            neighbors: 0.5
            noise: -88.5
          band_5: {}
          band_5_metric:
            avg_aps_per_channel: 0.15384615384615385
            channel_distribution_uniformity: 1
            cochannel_neighbors: 0
            density: 0
            naps_by_channel:
              "36": 1
              "116": 1
            naps_by_power:
              "13": 1
              "15": 1
            neighbors: 0.5
            noise: -90.5
          rftemplate:
            ant_gain_24: 0
            ant_gain_5: 0
            band_24:
              ant_gain: 0
              bandwidth: 20
              channels:
                - 1
                - 6
                - 11
              disabled: false
              power_max: 11
              power_min: 3
              preamble: short
            band_24_usage: "24"
            band_5:
              ant_gain: 0
              bandwidth: 80
              channels:
                - 36
                - 40
                - 44
                - 48
                - 52
                - 56
                - 60
                - 64
                - 100
                - 104
                - 108
                - 112
                - 116
              disabled: false
              power_max: 16
              power_min: 9
              preamble: short
            country_code: FR
            created_time: 1594743723
            id: b3f20330-xxxx-xxxx-xxxx-0d8727140b1d
            model_specific:
              AP41:
                ant_gain_5: 0
                band_5:
                  bandwidth: 40
                  disabled: false
                  power_max: 15
                  power_min: 8
                  preamble: short
            modified_time: 1603117193
            name: Lab
            org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          rftemplate_id: b3f20330-xxxx-xxxx-xxxx-0d8727140b1d
          rftemplate_name: Lab
          status: ready
          timestamp: 1604281725
    rrm_band:
      description: ""
      properties:
        bandwidth:
          description: proposed bandwidth
          enum:
            - 20
            - 40
            - 80
            - 160
          type: integer
        channel:
          description: proposed channel
          type: integer
        curr_bandwidht:
          description: current bandwidth
          enum:
            - 20
            - 40
            - 80
            - 160
          type: integer
        curr_channel:
          description: current channel
          type: integer
        curr_power:
          description: current tx power
          type: integer
        curr_usage:
          description: current radio band
          minLength: 1
          type: string
        power:
          description: proposed tx power
          type: integer
        usage:
          description: proposed radio band
          minLength: 1
          type: string
      type: object
      x-examples:
        example-1:
          bandwidth: 20
          channel: 1
          curr_bandwidht: 20
          curr_channel: 6
          curr_power: 18
          curr_usage: "24"
          power: 19
          usage: "24"
    rrm_band_metric:
      description: ""
      properties:
        cochannel_neighbors:
          description: average number of co-channel neighbors
          type: number
        density:
          description: defined by how APs can hear from one and another, 0 - 1 (everyone can hear everyone)
          maximum: 1
          minimum: 0
          type: number
        neighbors:
          description: average number of neighbors
          type: number
        noise:
          description: average noise in dBm
          type: number
      required:
        - noise
        - cochannel_neighbors
        - neighbors
        - density
      type: object
      x-examples:
        example-1:
          cochannel_neighbors: 1
          density: 1
          neighbors: 3
          noise: -82.7
    rssizone:
      description: RSSI Zone
      properties:
        created_time:
          readOnly: true
          type: number
        devices:
          description: List of devices and the respective RSSI values to be considered in the zone
          items:
            properties:
              device_id:
                format: uuid
                type: string
              rssi:
                description: RSSI threshold
                type: integer
            required:
              - device_id
              - rssi
            type: object
          type: array
          uniqueItems: true
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: The name of the zone
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - devices
      type: object
      x-examples:
        example-1:
          devices:
            - device_id: 00000000-0000-0000-1000-5c5b35bd76bb
              rssi: -80
          name: Board Room
    sdkinvite:
      description: SDK invite
      properties:
        created_time:
          readOnly: true
          type: number
        enabled:
          default: true
          type: boolean
        expire_time:
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: name, will show up in mobile
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        quota:
          description: number of time this invite can be used
          type: integer
        quota_limited:
          default: false
          description: whether quota limiting is enabled
          type: boolean
        site_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          enabled: true
          name: string
          quota: 0
          quota_limited: true
    sdktemplate:
      description: SDK Template
      properties:
        bg_image:
          type: string
        btn_flr_bgcolor:
          type: string
        created_time:
          readOnly: true
          type: number
        default:
          description: whether this is the default template when there are multiple templates
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        header_txt:
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: name for identification purpose
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        search_txtcolor:
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        welcome_msg:
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          bg_image: http://p.imgci.com/db/PICTURES/CMS/227700/227791.4.jpg
          btn_flr_bgcolor: "#282828"
          default: true
          header_txt: Mist
          name: default
          search_txtcolor: "#282828"
          welcome_msg: Welcome to Mist
    secpolicy:
      description: Security Policy is designed to audit / catch discripancies between “what’s intended to be running” versus “what’s actually running” in a network. Many big organizations have separated Security and IT team (for good reasons). Each site can be assigned a security policy. Whenever an AP is provisioned, the configuration will be checked against the security policy. Any violations will be flagged in Device Config History where you can search for the when and where the violation occurs.
      properties:
        created_time:
          readOnly: true
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        wlans:
          items:
            $ref: "#/components/schemas/wlan"
          minItems: 1
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          name: string
          wlans:
            - acct_interim_interval: 0
              acct_servers:
                - host: string
                  port: 0
                  secret: string
              airwatch:
                api_key: string
                console_url: string
                enabled: true
                password: string
                username: string
              allow_ipv6_ndp: true
              allow_mdns: true
              ap_ids:
                - string
              app_limit:
                apps: {}
                enabled: true
                wxtag_ids: {}
              app_qos:
                apps:
                  skype-business-video:
                    dscp: 0
                    dst_subnet: string
                    src_subnet: string
                  skype-business-voice:
                    dscp: 0
                enabled: true
                others:
                  - dscp: 0
                    dst_subnet: string
                    port_ranges: string
                    protocol: string
                    src_subnet: string
              apply_to: string
              arp_filter: true
              auth:
                eap_reauth: true
                enable_mac_auth: true
                key_idx: 1
                keys:
                  - string
                multi_psk_only: true
                owe: string
                private_wlan: true
                psk: string123
                type: string
                wep_as_secondary_auth: true
              auth_server_selection: ordered
              auth_servers:
                - host: string
                  port: 0
                  secret: string
              auth_servers_nas_id: string
              auth_servers_nas_ip: string
              auth_servers_retries: 0
              auth_servers_timeout: 0
              band: string
              band_steer: true
              band_steer_force_band5: true
              block_blacklist_clients: true
              bonjour:
                additional_vlan_ids:
                  - 0
                enabled: true
                services:
                  $service_name:
                    disable_local: true
                    radius_groups:
                      - string
                    scope: string
              cisco_cwa:
                allowed_hostnames:
                  - string
                allowed_subnets:
                  - string
                enabled: true
              client_limit_down: 0
              client_limit_down_enabled: true
              client_limit_up: 0
              client_limit_up_enabled: true
              coa_servers:
                - disable_event_timestamp_check: true
                  enabled: true
                  ip: string
                  port: 0
                  secret: string
              disable_11ax: true
              disable_uapsd: true
              disable_wmm: true
              dns_server_rewrite:
                enabled: true
                radius_groups: {}
              dtim: 0
              dynamic_psk:
                enabled: true
              dynamic_vlan:
                default_vlan_id: 1
                enabled: true
                local_vlan_ids:
                  - null
                type: string
                vlans:
                  - {}
              enable_wireless_bridging: true
              enabled: true
              hide_ssid: true
              hostname_ie: true
              hotspot20:
                enabled: true
                operators:
                  - null
                venue_name: string
              interface: string
              isolation: true
              legacy_overds: true
              limit_bcast: true
              limit_probe_response: true
              max_idletime: 60
              mxtunnel_id: string
              no_static_dns: true
              no_static_ip: true
              portal:
                amazon_client_id: string
                amazon_client_secret: string
                amazon_email_domains:
                  - string
                amazon_enabled: true
                auth: string
                azure_client_id: string
                azure_client_secret: string
                azure_enabled: true
                azure_tenant_id: string
                bypass_when_cloud_down: true
                email_enabled: true
                enabled: true
                expire: 0
                external_portal_url: string
                facebook_client_id: string
                facebook_client_secret: string
                facebook_email_domains:
                  - string
                facebook_enabled: true
                forward: true
                forward_url: string
                google_email_domains:
                  - string
                google_enabled: true
                microsoft_client_id: string
                microsoft_client_secret: string
                microsoft_email_domains:
                  - string
                microsoft_enabled: true
                passphrase_enabled: true
                password: string
                portal_allowed_hostnames: string
                portal_allowed_subnets: string
                portal_api_secret: string
                portal_denied_hostnames: string
                portal_image: string
                portal_sso_url: string
                privacy: true
                sms_enabled: true
                sms_provider: string
                sponsor_email_domains:
                  - string
                sponsor_enabled: true
                sponsor_link_validity_duration: "60"
                sso_default_role: string
                sso_idp_cert: string
                sso_idp_sign_algo: string
                sso_idp_sso_url: string
                sso_issuer: string
                thumbnail: string
                twilio_auth_token: string
                twilio_phone_number: string
                twilio_sid: string
              portal_allowed_hostnames:
                - string
              portal_allowed_subnets:
                - string
              portal_api_secret: string
              portal_denied_hostnames:
                - string
              portal_image: http://example.com
              portal_sso_url: string
              portal_template_url: string
              qos:
                class: string
                overwrite: true
              radsec:
                enabled: true
                server_name: string
                servers:
                  - host: string
                    port: 0
              rateset:
                "5":
                  ht: string
                  legacy:
                    - string
                  min_rssi: 0
                  template: string
                  vht: string
                "24":
                  ht: string
                  legacy:
                    - string
                  min_rssi: 0
                  template: string
                  vht: string
              roam_mode: 11r
              schedule:
                enabled: true
                hours: {}
              sle_excluded: true
              ssid: string
              thumbnail: http://example.com
              use_eapol_v1: true
              vlan_enabled: true
              vlan_id: 1
              vlan_ids:
                - 0
              vlan_pooling: true
              wlan_limit_down: 0
              wlan_limit_down_enabled: true
              wlan_limit_up: 0
              wlan_limit_up_enabled: true
              wxtag_ids:
                - string
              wxtunnel_id: string
              wxtunnel_remote_id: string
    service:
      description: WIP
      properties:
        addresses:
          description: if `type`==`custom`, the subnets where the service resides (if more specific is required)
          items:
            type: string
          type: array
        app_caetgories:
          description: list of application categories are available through /api/v1/const/app_categories
          items:
            type: string
          type: array
        apps:
          description: |-
            when `type`==`app`, comes from `/api/v1/const/apps`
            when `type`==`app_categories`, comes from `/api/v1/const/app_categories`
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: integer
        description:
          type: string
        dscp:
          description: when `traffic_type`==`custom`
          type: integer
        failover_policy:
          default: revertable
          enum:
            - revertable
            - non-revertable
          type: string
        hostnames:
          description: if `type`==`custom`
          items:
            type: string
          type: array
        id:
          format: uuid
          type: string
        max_jitter:
          description: when `traffic_type`==`custom`, for uplink selection
          type: integer
        max_latency:
          description: when `traffic_type`==`custom`, for uplink selection
          type: string
        max_loss:
          description: when `traffic_type`==`custom`, for uplink selection
          type: integer
        modified_time:
          readOnly: true
          type: integer
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        sle_enabled:
          default: false
          description: whether to enable measure SLE
          type: boolean
        specs:
          description: when `type`==`addresses` or `type`==`hostnames`
          items:
            properties:
              port_range:
                type: integer
              protocol:
                default: any
                description: |-
                  `https`/ `tcp` / `udp` / `icmp` / `gre` / `any` / `:protocol_number`.
                  `protocol_number` is between 1-254
                type: string
            type: object
          type: array
          uniqueItems: true
        traffic_class:
          default: best_effort
          description: when `traffic_type`==`custom`
          enum:
            - best_effort
            - high
            - medium
            - low
          type: string
        traffic_type:
          default: data_best_effort
          description: |-
            values from `/api/v1/consts/traffic_types`
            * when `type`==`apps`, we'll choose traffic_type automatically
            * when `type`==`addresses` or `type`==`hostnames`, you can provide your own settings (optional)
          type: string
        type:
          default: custom
          enum:
            - app
            - app_categories
            - custom
          type: string
        vpn_name:
          enum:
            - addresses
            - apps
            - local
            - hostname
          type: string
      type: object
      x-examples:
        example-1:
          addresses:
            - string
          app_caetgories:
            - string
          apps:
            - string
          created_time: 0
          dscp: 0
          failover_policy: revertable
          hostnames:
            - string
          id: 497f6eca-6276-5017-bfeb-53cbbbba6f08
          max_jitter: 0
          max_latency: string
          max_loss: 0
          modified_time: 0
          name: string
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          sle_enabled: false
          specs:
            - port_range: 0
              protocol: any
          traffic_class: best_effort
          traffic_type: data_best_effort
          type: custom
          vpn_name: addresses
    service_policy:
      description: ""
      properties:
        action:
          default: allow
          enum:
            - allow
            - deny
          minLength: 1
          type: string
        created_time:
          readOnly: true
          type: number
        id:
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          readOnly: true
          type: string
        services:
          items:
            type: string
          type: array
        tenants:
          items:
            type: string
          type: array
      required:
        - tenants
        - services
        - action
        - name
      type: object
      x-examples:
        example-1:
          action: allow
          created_time: 1642151195
          id: d21928e1-6fe3-4f28-80b6-a2965156792b
          modified_time: 1642151195
          name: DC-APPs
          org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4
          services:
            - dc-apps
          tenants:
            - pos.store
            - camera.store
    simple_alert:
      description: |-
        Set of heuristic rules will be enabled when marvis subscription is not available.
        It triggers when, in a Z minute window, there are more than Y distinct client encountring over X failures
      properties:
        arp_failure:
          properties:
            client_count:
              default: 10
              type: integer
            duration:
              default: 20
              description: failing within minutes
              maximum: 60
              minimum: 5
              type: integer
            incident_count:
              default: 10
              type: integer
          type: object
        dhcp_failure:
          properties:
            client_count:
              default: 10
              type: integer
            duration:
              default: 10
              description: failing within minutes
              maximum: 60
              minimum: 5
              type: integer
            incident_count:
              default: 20
              type: integer
          type: object
        dns_failure:
          properties:
            client_count:
              default: 20
              type: integer
            duration:
              default: 10
              description: failing within minutes
              maximum: 60
              minimum: 5
              type: integer
            incident_count:
              default: 30
              type: integer
          type: object
      type: object
    site:
      description: Site
      properties:
        address:
          description: full address of the site
          example: 1601 S. Deanza Blvd., Cupertino, CA, 95014
          type: string
        alarmtemplate_id:
          description: Alarm Template ID, this takes precedence over the Org-level alarmtemplate_id
          example: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
          format: uuid
          nullable: true
          type: string
        aptemplate_id:
          description: AP Template ID, used by APs
          example: 16bdf952-ade2-4491-80b0-85ce506c760b
          type: string
        country_code:
          description: country code for the site (for AP config generation), in two-character
          example: US
          type: string
        created_time:
          readOnly: true
          type: number
        gatewaytemplate_id:
          description: Gateway Template ID, used by gateways
          example: 6f9b2e75-9b2f-b5ae-81e3-e14c76f1a90f
          format: uuid
          nullable: true
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        latlng:
          description: site location
          properties:
            lat:
              description: latitude
              example: 37.295833
              type: number
            lng:
              description: longitude
              example: -122.032946
              type: number
          type: object
        modified_time:
          readOnly: true
          type: number
        name:
          example: Mist Office
          type: string
        networktemplate_id:
          description: Network Template ID, this takes precedence over Site Settings
          example: 12ae9bd2-e0ab-107b-72e8-a7a005565ec2
          format: uuid
          nullable: true
          type: string
        notes:
          description: optional, any notes about the site
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        rftemplate_id:
          description: RF Template ID, this takes precedence over Site Settings
          example: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
          format: uuid
          nullable: true
          type: string
        secpolicy_id:
          description: SecPolicy ID
          example: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
          format: uuid
          nullable: true
          type: string
        sitegroup_ids:
          description: sitegroups this site belongs to
          items:
            format: uuid
            type: string
          type: array
        sitetemplate_id:
          description: Site Template ID
          format: uuid
          type: string
        timezone:
          description: Timezone the site is at
          example: America/Los_Angeles
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
          alarmtemplate_id: 684dfc5c-fe77-2290-eb1d-ef3d677fe168
          apporttemplate_id: string
          aptemplate_id: 16bdf952-ade2-4491-80b0-85ce506c760b
          country_code: US
          created_time: 0
          gatewaytemplate_id: 6f9b2e75-9b2f-b5ae-81e3-e14c76f1a90f
          id: 497f6eca-6276-5018-bfeb-53cbbbba6f08
          latlng:
            lat: 37.295833
            lng: -122.032946
          modified_time: 0
          name: Mist Office
          networktemplate_id: 12ae9bd2-e0ab-107b-72e8-a7a005565ec2
          notes: string
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          rftemplate_id: bb8a9017-1e36-5d6c-6f2b-551abe8a76a2
          secpolicy_id: 3bcd0beb-5d0a-4cbd-92c1-14aea91e98ef
          sitegroup_ids:
            - 497f6eca-6276-5019-bfeb-53cbbbba6f08
          timezone: America/Los_Angeles
    site_auto_upgrade:
      description: Auto Upgrade Settings
      properties:
        custom_versions:
          additionalProperties:
            type: string
          description: custom versions for different models. The property key is the model name (e.g. "AP41")
          type: object
        day_of_week:
          enum:
            - any
            - mon
            - tue
            - wed
            - thu
            - fri
            - sat
            - sun
            - ""
          nullable: true
          type: string
        enabled:
          default: false
          description: whether auto upgrade should happen (Note that Mist may auto-upgrade if the version is not supported)
          type: boolean
        time_of_day:
          description: any / HH:MM (24-hour format), upgrade will happen within up to 1-hour from this time
          type: string
        version:
          default: stable
          description: desired version
          enum:
            - beta
            - stable
            - custom
          type: string
      type: object
      x-examples:
        example-1:
          custom_versions:
            AP21: stable
            AP41: 0.1.5135
            AP61: 0.1.7215
          day_of_week: sun
          enabled: true
          time_of_day: 12:00
          version: beta
    site_engagement:
      description: |-
        **Note**: if hours does not exist, it’s treated as everyday of the week, 00:00-23:59. Currently we don’t allow multiple ranges for the same day

        **Note**: default values for `dwell_tags`: passerby (1,300) bounce (301, 14400) engaged (14401, 28800) stationed (28801, 42000)

        **Note**: default values for `dwell_tag_names`: passerby = “Passerby”, bounce = “Visitor”, engaged = “Associates”, stationed = “Assets”
      properties:
        dwell_tag_names:
          properties:
            bounce:
              type: string
            engaged:
              type: string
            passerby:
              type: string
            stationed:
              type: string
          required:
            - passerby
            - bounce
            - engaged
            - stationed
          type: object
        dwell_tags:
          description: add tags to visits within the duration (in seconds), available tags (passerby, bounce, engaged, stationed)
          properties:
            bounce:
              nullable: true
              type: string
            engaged:
              nullable: true
              type: string
            passerby:
              nullable: true
              type: string
            stationed:
              nullable: true
              type: string
          type: object
        hours:
          description: |-
            hours of operation filter, the available days (mon, tue, wed, thu, fri, sat, sun). 

            **Note**: If the dow is not defined then it’s treated as 00:00-23:59.
          properties:
            fri:
              type: string
            mon:
              type: string
            sta:
              type: string
            sun:
              type: string
            thu:
              type: string
            tue:
              type: string
            wed:
              type: string
          type: object
        max_dwell:
          default: 43200
          description: max time, default is 43200(12h), max is 68400 (18h)
          maximum: 68400
          type: integer
        min_dwell:
          description: min time
          minimum: 0
          type: integer
      required:
        - dwell_tag_names
      type: object
      x-examples:
        example-1:
          dwell_tag_names:
            bounce: Bounce
            engaged: Engaged
            passerby: Passer By
            stationed: Stationed
          dwell_tags:
            engaged: 300-14400
            stationed: 14400-43200
          hours:
            fri: 09:00-17:00
            mon: 09:00-17:00
          max_dwell: 43200
    site_gateway:
      description: Gateway Site settings
      properties:
        admin_sshkeys:
          description: for SSR only, as direct root access is not allowed
          items:
            type: string
          type: array
        app_probing:
          properties:
            apps:
              items:
                type: string
              type: array
            custom_apps:
              items:
                properties:
                  app_type:
                    type: string
                  hostname:
                    items:
                      type: string
                    type: array
                  name:
                    type: string
                  protocol:
                    default: http
                    enum:
                      - http
                      - tcp
                      - udp
                    type: string
                type: object
              type: array
            enabled:
              type: boolean
          type: object
        app_usage:
          description: consumes uplink bandwidth, requires WA license
          type: boolean
        auto_signature_update:
          properties:
            day_of_week:
              description: optional, daily if omitted
              type: string
            enable:
              default: true
              type: boolean
            time_of_day:
              description: optional, Mist will decide the timing
              type: string
          type: object
        config_revert_timer:
          default: 10
          description: he rollback timer for commit confirmed
          maximum: 30
          minimum: 1
          type: number
        probe_hosts:
          items:
            type: string
          type: array
        root_password:
          description: for SRX only
          type: string
        security_log_source_address:
          type: string
        security_log_source_interface:
          type: string
      type: object
      x-examples:
        example-1:
          app_probing:
            apps:
              - string
            custom_apps:
              - app_type: string
                hostname:
                  - string
                name: string
                protocol: http
            enabled: true
          app_usage: true
          config_revert_timer: 10
    site_mxtunnel:
      description: Site MxTunnel
      properties:
        ap_subnets:
          description: list of subnets where we allow AP to establish Mist Tunnels from
          items:
            type: string
          type: array
        clusters:
          description: for AP, how to connect to tunterm or radsecproxy
          items:
            properties:
              name:
                type: string
              tunterm_hosts:
                items:
                  type: string
                type: array
            type: object
          type: array
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        hello_interval:
          default: 60
          description: in seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by hello_retries
          maximum: 300
          minimum: 1
          type: integer
        hello_retries:
          default: 7
          maximum: 30
          minimum: 2
          type: integer
        hosts:
          description: hostnames or IPs where a Mist Tunnel will use as the Peer (i.e. they are reachable from AP)
          items:
            type: string
          type: array
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        mtu:
          default: 0
          description: 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
          maximum: 1500
          minimum: 0
          type: integer
        org_id:
          format: uuid
          readOnly: true
          type: string
        protocol:
          enum:
            - udp
            - ip
          type: string
        radsec:
          properties:
            acct_servers:
              items:
                $ref: "#/components/schemas/acct_server"
              type: array
            auth_servers:
              items:
                $ref: "#/components/schemas/auth_server"
              type: array
            enabled:
              type: boolean
            use_mxedge:
              type: boolean
          type: object
        site_id:
          format: uuid
          readOnly: true
          type: string
        vlan_ids:
          description: list of vlan_ids that will be use
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
      type: object
      x-examples:
        example-1:
          ap_subnets: 0.0.0.0/0
          clusters:
            - name: primary
              tunterm_hosts:
                - mxedge1
                - mxedge2.local
          enabled: false
          hello_interval: 60
          hello_retries: 3
          mtu: 1100
          protocol: udp
          radsec:
            acct_servers:
              - host: 1.2.3.4
                port: 1812
                secret: testing123
            auth_servers:
              - host: 1.2.3.4
                port: 1812
                secret: testing123
              - host: radius.internal
                port: 1812
                secret: testing123
            enabled: true
            use_mxedge: true
          vlan_ids:
            - 3
            - 5
            - 6
    site_occupancy_analytics:
      description: Occupancy Analytics settings
      properties:
        assets_enabled:
          default: false
          description: indicate whether named BLE assets should be included in the zone occupancy calculation
          type: boolean
        clients_enabled:
          default: true
          description: indicate whether connected WiFi clients should be included in the zone occupancy calculation
          type: boolean
        min_duration:
          default: 3000
          description: minimum duration
          type: integer
        sdkclients_enabled:
          default: false
          description: indicate whether SDK clients should be included in the zone occupancy calculation
          type: boolean
        unconnected_clients_enabled:
          default: false
          description: indicate whether unconnected WiFi clients should be included in the zone occupancy calculation
          type: boolean
      type: object
      x-examples:
        example-1:
          assets_enabled: true
          clients_enabled: true
          min_duration: 3000
          sdkclients_enabled: true
          unconnected_clients_enabled: false
    site_rogue:
      description: Rogue site settings
      properties:
        enabled:
          description: whether or not rogue detection is enabled
          type: boolean
        honeypot_enabled:
          description: whether or not honeypot detection is enabled
          type: boolean
        min_duration:
          default: 10
          description: minimum duration for a bssid to be considered rogue
          maximum: 59
          type: integer
        min_rssi:
          default: -80
          description: minimum RSSI for an AP to be considered rogue (ignoring APs that’s far away)
          minimum: -85
          type: integer
        whitelisted_bssids:
          description: 'list of BSSIDs to whitelist. Ex: "cc-:8e-:6f-:d4-:bf-:16", "cc-8e-6f-d4-bf-16", "cc-73-*", "cc:82:*"'
          items:
            type: string
          type: array
        whitelisted_ssids:
          description: list of SSIDs to whitelist
          items:
            type: string
          type: array
      type: object
      x-examples:
        example-1:
          enabled: false
          honeypot_enabled: true
          min_duration: 10
          min_rssi: -80
          whitelisted_bssids:
            - cc-8e-6f-d4-bf-16
            - cc-8e-6f-d4-bf-16
          whitelisted_ssids:
            - NeighborSSID
    site_setting:
      description: Site Settings
      properties:
        additional_config_cmds:
          description: "additional CLI commands to append to the generated switches config "
          items:
            type: string
          type: array
        analytic:
          properties:
            enabled:
              default: false
              description: enable Advanced Analytic feature (using SUB-ANA license)
              type: boolean
          type: object
        ap_matching:
          properties:
            enabled:
              type: boolean
            rules:
              items:
                properties:
                  match_model:
                    type: string
                  name:
                    type: string
                  port_config:
                    additionalProperties:
                      $ref: "#/components/schemas/ap_port_config"
                    description: The property key is the interface(s) (e.g. "eth1,eth2")
                    type: object
                type: object
              type: array
          type: object
        ap_port_config:
          properties:
            model_specific:
              additionalProperties:
                additionalProperties:
                  $ref: "#/components/schemas/ap_port_config"
                description: the property key is the interface(s) (e.g. "eth1,eth2")
                type: object
              description: the property key is the AP model (e.g "AP32")
              type: object
          type: object
        auto_placement:
          description: if we're able to determine its x/y/orientation, this will be populated
          properties:
            orientation:
              type: number
            x:
              type: number
            y:
              type: number
          type: object
        auto_preemption:
          $ref: "#/components/schemas/auto_preemption"
        auto_upgrade:
          $ref: "#/components/schemas/site_auto_upgrade"
        blacklist_url:
          readOnly: true
          type: string
        ble_config:
          $ref: "#/components/schemas/ap_ble"
        config_auto_revert:
          default: false
          description: whether to enable ap auto config revert
          type: boolean
        created_time:
          readOnly: true
          type: number
        device_updown_threshold:
          default: 0
          description: sending AP_DISCONNECTED event in device-updowns only if AP_CONNECTED is not seen within the threshold, in minutes
          maximum: 30
          minimum: 0
          type: integer
        dns_servers:
          description: list of NTP servers
          items:
            type: string
          type: array
        dns_suffix:
          description: list of NTP servers
          items:
            type: string
          type: array
        enable_channel_144:
          default: false
          description: whether to enable channel 144 (some older clients may not support it)
          type: boolean
        engagement:
          $ref: "#/components/schemas/site_engagement"
        evpn_options:
          $ref: "#/components/schemas/junos_evpn_options"
        flags:
          additionalProperties:
            type: string
          description: name/val pair objects for location engine to use
          type: object
        for_site:
          readOnly: true
          type: boolean
        gateway_additional_config_cmds:
          description: |-
            additional CLI commands to append to the generated config for gateways

            **Note**: no check is done
          items:
            type: string
          type: array
        gateway_mgmt:
          $ref: "#/components/schemas/site_gateway"
        id:
          format: uuid
          readOnly: true
          type: string
        led:
          $ref: "#/components/schemas/ap_led"
        modified_time:
          readOnly: true
          type: number
        mxedge:
          description: site mist edges form a cluster of radsecproxy servers
          properties:
            mist_das:
              $ref: "#/components/schemas/mxedge_das"
            radsec:
              $ref: "#/components/schemas/mxcluster_radsec"
          type: object
        mxedge_mgmt:
          $ref: "#/components/schemas/mxedge_mgmt"
        mxtunnels:
          $ref: "#/components/schemas/site_mxtunnel"
        networks:
          additionalProperties:
            $ref: "#/components/schemas/junos_networks"
          description: the property key is the network name
          type: object
        ntp_servers:
          description: list of NTP servers
          items:
            type: string
          type: array
        occupancy:
          $ref: "#/components/schemas/site_occupancy_analytics"
        org_id:
          format: uuid
          readOnly: true
          type: string
        ospf_areas:
          additionalProperties:
            $ref: "#/components/schemas/junos_ospf_areas"
          description: the property key is the OSPF area
          type: object
        persist_config_on_device:
          default: false
          description: whether to store the config on AP
          type: boolean
        port_mirroring:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_mirroring"
          description: |-
            Property key is the port mirroring instance name
            port_mirroring can be added under site/settings. It takes interface and ports as input for ingress, interface as input for egress and can take interface and port as output.
          type: object
        port_usages:
          additionalProperties:
            $ref: "#/components/schemas/junos_port_usages"
          description: the property key is the port usage name
          properties:
            dynamic:
              $ref: "#/components/schemas/junos_port_usages_dynamic"
          type: object
        proxy:
          description: Proxy Configuration for APs and Site Edges to talk to Mist
          properties:
            url:
              type: string
          type: object
        radio_config:
          $ref: "#/components/schemas/ap_radio"
        radius_config:
          $ref: "#/components/schemas/junos_radius_config"
        remote_syslog:
          $ref: "#/components/schemas/remote_syslog"
        report_gatt:
          default: false
          description: whether AP should periodically connect to BLE devices and report GATT device info (device name, manufacturer name, serial number, battery %, temperature, humidity)
          type: boolean
        rogue:
          $ref: "#/components/schemas/site_rogue"
        rtsa:
          description: managed mobility
          properties:
            app_waking:
              default: false
              type: boolean
            disable_dead_reckoning:
              type: boolean
            disable_pressure_sensor:
              type: boolean
            enabled:
              type: boolean
            track_asset:
              description: asset tracking related
              type: boolean
          type: object
        simple_alert:
          $ref: "#/components/schemas/simple_alert"
        site_id:
          format: uuid
          readOnly: true
          type: string
        skyatp:
          properties:
            enabled:
              type: boolean
            send_ip_mac_mapping:
              type: boolean
          type: object
        srx_app:
          properties:
            enabled:
              default: false
              type: boolean
          type: object
        ssh_keys:
          description: when limit_ssh_access = true in Org Setting, list of SSH public keys provided by Mist Support to install onto APs (see Org:Setting)
          items:
            type: string
          type: array
        ssr:
          $ref: "#/components/schemas/site_ssr"
        status_portal:
          properties:
            enabled:
              type: boolean
            hostnames:
              items:
                type: string
              type: array
          type: object
        switch_matching:
          properties:
            additional_config_cmds:
              description: |-
                additional CLI commands to append if this rule matches
                NOTE: no check is done
              items:
                type: string
              type: array
            enabled:
              default: false
              type: boolean
            rules:
              items:
                properties:
                  additionalProperty:
                    description: Property key is `match_name[x:y]`, where x and y are the first and the last characters of the string to match. Value is the string to match.
                    type: string
                  match_model:
                    type: string
                  name:
                    type: string
                  port_config:
                    additionalProperties:
                      properties:
                        usage:
                          type: string
                      type: object
                    description: Object key is a comma separated list of interface names or interface ranges (e.g. ge-0/0/0, ge-0/0/0-5)
                    type: object
                type: object
              type: array
          type: object
        switch_mgmt:
          $ref: "#/components/schemas/site_switch"
        track_anonymous_devices:
          default: false
          description: whether to track anonymous BLE assets (requires ‘track_asset’ enabled)
          type: boolean
        tunterm_monitoring:
          items:
            $ref: "#/components/schemas/site_tunterm_monitoring"
          type: array
        tunterm_monitoring_disabled:
          type: boolean
        vars:
          additionalProperties:
            description: the property key is the var name
            type: string
          type: object
        vna:
          properties:
            enabled:
              default: false
              description: enable Virtual Network Assistant (using SUB-VNA license). This applied to AP / Switch / Gateway
              type: boolean
          type: object
        vrf_instances:
          additionalProperties:
            $ref: "#/components/schemas/junos_vrf_instance"
          description: the property key is the network name
          type: object
        vrrp_groups:
          additionalProperties:
            $ref: "#/components/schemas/junos_vrrp_group"
          description: the property key is the vrrp group
          type: object
        vs_instances:
          additionalProperties:
            properties:
              networks:
                items:
                  example: guest
                  type: string
                type: array
            type: object
          description: |-
            virtual-switch (for EX92xx and QFX5130)
            all the networks not included here will be placed in default `evpn_vs` virtual-switch RI
            Property key is the instance name
          type: object
        wan_vna:
          properties:
            enabled:
              default: false
              type: boolean
          type: object
        watched_station_url:
          readOnly: true
          type: string
        whitelist_url:
          readOnly: true
          type: string
        wids:
          $ref: "#/components/schemas/site_wids"
        wifi:
          $ref: "#/components/schemas/site_wifi"
        wired_vna:
          properties:
            enabled:
              default: false
              type: boolean
          type: object
        zone_occupancy_alert:
          $ref: "#/components/schemas/site_zone_occupancy_alert"
      type: object
      x-examples:
        example-1:
          additional_config_cmds:
            - string
          analytic:
            enabled: false
          ap_matching:
            enabled: true
            rules:
              - match_model: string
                name: string
                port_config:
                  property1:
                    disabled: true
                    dynamic_vlan:
                      default_vlan_id: 0
                      enabled: true
                      type: string
                      vlans:
                        property1: string
                        property2: string
                    enable_mac_auth: true
                    forwarding: all
                    mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                    mxtunnel_name: string
                    port_auth: none
                    port_vlan_id: 0
                    radius_config:
                      acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      auth_servers_retries: 3
                      auth_servers_timeout: 5
                      coa_enabled: false
                      coa_port: 3799
                      network: string
                      source_ip: string
                    radsec:
                      enabled: true
                      idle_timeout: 0
                      server_name: string
                      servers:
                        - host: string
                          port: 0
                      use_mxedge: true
                    vlan_id: 0
                    vland_ids:
                      - 0
                    wxtunnel_id: string
                    wxtunnel_remote_id: string
                  property2:
                    disabled: true
                    dynamic_vlan:
                      default_vlan_id: 0
                      enabled: true
                      type: string
                      vlans:
                        property1: string
                        property2: string
                    enable_mac_auth: true
                    forwarding: all
                    mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                    mxtunnel_name: string
                    port_auth: none
                    port_vlan_id: 0
                    radius_config:
                      acct_interim_interval: 0
                      acct_servers:
                        - host: string
                          port: 1813
                          secret: string
                      auth_servers:
                        - host: string
                          port: 1812
                          secret: string
                      auth_servers_retries: 3
                      auth_servers_timeout: 5
                      coa_enabled: false
                      coa_port: 3799
                      network: string
                      source_ip: string
                    radsec:
                      enabled: true
                      idle_timeout: 0
                      server_name: string
                      servers:
                        - host: string
                          port: 0
                      use_mxedge: true
                    vlan_id: 0
                    vland_ids:
                      - 0
                    wxtunnel_id: string
                    wxtunnel_remote_id: string
          ap_port_config:
            model_specific:
              property1:
                property1:
                  disabled: true
                  dynamic_vlan:
                    default_vlan_id: 0
                    enabled: true
                    type: string
                    vlans:
                      property1: string
                      property2: string
                  enable_mac_auth: true
                  forwarding: all
                  mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                  mxtunnel_name: string
                  port_auth: none
                  port_vlan_id: 0
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  radsec:
                    enabled: true
                    idle_timeout: 0
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                    use_mxedge: true
                  vlan_id: 0
                  vland_ids:
                    - 0
                  wxtunnel_id: string
                  wxtunnel_remote_id: string
                property2:
                  disabled: true
                  dynamic_vlan:
                    default_vlan_id: 0
                    enabled: true
                    type: string
                    vlans:
                      property1: string
                      property2: string
                  enable_mac_auth: true
                  forwarding: all
                  mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                  mxtunnel_name: string
                  port_auth: none
                  port_vlan_id: 0
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  radsec:
                    enabled: true
                    idle_timeout: 0
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                    use_mxedge: true
                  vlan_id: 0
                  vland_ids:
                    - 0
                  wxtunnel_id: string
                  wxtunnel_remote_id: string
              property2:
                property1:
                  disabled: true
                  dynamic_vlan:
                    default_vlan_id: 0
                    enabled: true
                    type: string
                    vlans:
                      property1: string
                      property2: string
                  enable_mac_auth: true
                  forwarding: all
                  mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                  mxtunnel_name: string
                  port_auth: none
                  port_vlan_id: 0
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  radsec:
                    enabled: true
                    idle_timeout: 0
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                    use_mxedge: true
                  vlan_id: 0
                  vland_ids:
                    - 0
                  wxtunnel_id: string
                  wxtunnel_remote_id: string
                property2:
                  disabled: true
                  dynamic_vlan:
                    default_vlan_id: 0
                    enabled: true
                    type: string
                    vlans:
                      property1: string
                      property2: string
                  enable_mac_auth: true
                  forwarding: all
                  mx_tunnel_id: 5f5cac07-0805-46ea-aafd-5c5729042729
                  mxtunnel_name: string
                  port_auth: none
                  port_vlan_id: 0
                  radius_config:
                    acct_interim_interval: 0
                    acct_servers:
                      - host: string
                        port: 1813
                        secret: string
                    auth_servers:
                      - host: string
                        port: 1812
                        secret: string
                    auth_servers_retries: 3
                    auth_servers_timeout: 5
                    coa_enabled: false
                    coa_port: 3799
                    network: string
                    source_ip: string
                  radsec:
                    enabled: true
                    idle_timeout: 0
                    server_name: string
                    servers:
                      - host: string
                        port: 0
                    use_mxedge: true
                  vlan_id: 0
                  vland_ids:
                    - 0
                  wxtunnel_id: string
                  wxtunnel_remote_id: string
          auto_upgrade:
            custom_versions:
              property1: string
              property2: string
            day_of_week: any
            enabled: false
            time_of_day: string
            version: stable
          bgp_groups:
            property1:
              type: external
            property2:
              type: external
          blacklist_url: string
          ble_config:
            beacon_enabled: true
            beacon_rate: 0
            beacon_rate_mode: default
            beam_disabled:
              - 0
            eddystone_uid_adv_power: -100
            eddystone_uid_beams: string
            eddystone_uid_enabled: true
            eddystone_uid_freq_msec: 0
            eddystone_uid_instance: string
            eddystone_uid_namespace: string
            eddystone_url_adv_power: 0
            eddystone_url_beams: string
            eddystone_url_enabled: true
            eddystone_url_freq_msec: 0
            eddystone_url_url: string
            ibeacon_adv_power: -100
            ibeacon_beams: string
            ibeacon_enabled: false
            ibeacon_freq_msec: 0
            ibeacon_major: 0
            ibeacon_minor: 0
            ibeacon_uuid: 1f89bc00-d0af-481b-82fe-a6629259a39f
            power: 9
            power_mode: string
          config_auto_revert: false
          created_time: 0
          device_updown_threshold: 0
          dns_servers:
            - string
          dns_suffix:
            - string
          enable_channel_144: false
          engagement:
            dwell_tag_names:
              bounce: string
              engaged: string
              passerby: string
              stationed: string
            dwell_tags:
              bounce: string
              engaged: string
              passerby: string
              stationed: string
            hours:
              fri: string
              mon: string
              sta: string
              sun: string
              thu: string
              tue: string
              wed: string
            max_dwell: 43200
            min_dwell: 0
          evpn_options:
            overlay:
              as: 65000
            underlay:
              as_base: 65001
              routed_id_prefix: /24
              subnet: 10.255.240.0/20
          flags:
            property1: string
            property2: string
          for_site: true
          gateway_mgmt:
            app_probing:
              apps:
                - string
              custom_apps:
                - app_type: string
                  hostname:
                    - string
                  name: string
                  protocol: http
              enabled: true
            app_usage: true
            config_revert_timer: 10
            security_log_source_address: string
            security_log_source_interface: string
          id: 434f6eca-6276-4993-bfeb-53cb1bba6f08
          led:
            brightness: 0
            enabled: true
          modified_time: 0
          mxedge_mgmt:
            "": string
            mist_password: string
            root_password: string
          mxtunnels:
            ap_subnets:
              - string
            clusters:
              - name: string
                tunterm_hosts:
                  - string
            created_time: 0
            for_site: true
            hello_interval: 60
            hello_retries: 7
            hosts:
              - string
            id: 433f6eca-6276-4993-bfeb-53cb2bba6f08
            modified_time: 0
            mtu: 0
            org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
            protocol: udp
            radsec:
              acct_servers:
                - host: string
                  port: 1813
                  secret: string
              auth_servers:
                - host: string
                  port: 1812
                  secret: string
              enabled: true
              use_mxedge: true
            site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
            vlan_ids:
              - 0
          networks:
            property1:
              dns:
                - string
              dns_suffix:
                - string
              gateway: string
              ospf_interface_type: string
              subnet: string
              vlan_id: 0
              zone: string
            property2:
              dns:
                - string
              dns_suffix:
                - string
              gateway: string
              ospf_interface_type: string
              subnet: string
              vlan_id: 0
              zone: string
          ntp_servers:
            - string
          occupancy:
            assets_enabled: false
            clients_enabled: true
            min_duration: 3000
            sdkclients_enabled: false
            unconnected_clients_enabled: false
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          ospf_areas:
            property1:
              networks:
                property1:
                  auth_keys:
                    property1: string
                    property2: string
                  auth_password: string
                  auth_type: none
                  interface_type: nbma
                  passive: false
                property2:
                  auth_keys:
                    property1: string
                    property2: string
                  auth_password: string
                  auth_type: none
                  interface_type: nbma
                  passive: false
              type: default
            property2:
              networks:
                property1:
                  auth_keys:
                    property1: string
                    property2: string
                  auth_password: string
                  auth_type: none
                  interface_type: nbma
                  passive: false
                property2:
                  auth_keys:
                    property1: string
                    property2: string
                  auth_password: string
                  auth_type: none
                  interface_type: nbma
                  passive: false
              type: default
          persist_config_on_device: false
          port_usages:
            dynamic:
              mode: dynamic
              reset_default_when: link_down
              rules:
                - equals: string
                  equals_any:
                    - string
                  expression: string
                  src: lldp_chassis_id
                  usage: string
            property1:
              all_networks: false
              allow_dhcpd: true
              bypass_auth_when_server_down: true
              description: string
              disable_autoneg: false
              disabled: false
              duplex: auto
              dynamic_vlan:
                default_network: 0
                enabled: true
                networks:
                  property1: 0
                  property2: 0
                type: standard
              enable_mac_auth: true
              enable_qos: true
              guest_network: string
              mac_auth_only: true
              mac_limit: 0
              mode: access
              mtu: 0
              networks:
                - string
              persist_mac: false
              poe_disabled: false
              port_auth: string
              port_network: string
              rejected_network: true
              speed: string
              storm_control:
                no_broadcast: false
                no_multicast: false
                no_registered_multicast: false
                no_unknown_unicast: false
                percentage: 80
              stp_edge: true
              voip_network: string
            property2:
              all_networks: false
              allow_dhcpd: true
              bypass_auth_when_server_down: true
              description: string
              disable_autoneg: false
              disabled: false
              duplex: auto
              dynamic_vlan:
                default_network: 0
                enabled: true
                networks:
                  property1: 0
                  property2: 0
                type: standard
              enable_mac_auth: true
              enable_qos: true
              guest_network: string
              mac_auth_only: true
              mac_limit: 0
              mode: access
              mtu: 0
              networks:
                - string
              persist_mac: false
              poe_disabled: false
              port_auth: string
              port_network: string
              rejected_network: true
              speed: string
              storm_control:
                no_broadcast: false
                no_multicast: false
                no_registered_multicast: false
                no_unknown_unicast: false
                percentage: 80
              stp_edge: true
              voip_network: string
          proxy:
            url: string
          radio_config:
            ant_gain_24: 0
            ant_gain_5: 0
            ant_gain_6: 0
            band_24:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_24_usage: "24"
            band_5:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_5_on_24_radio:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            band_6:
              allow_rrm_disable: true
              ant_gain: 0
              antenna_mode: default
              bandwidth: 20
              channel: 0
              channels:
                - 0
              disabled: true
              power: 0
              power_max: 0
              power_min: 0
              preamble: short
              usage: "24"
            scanning_enabled: true
          radius_config:
            acct_interim_interval: 0
            acct_servers:
              - host: string
                port: 1813
                secret: string
            auth_servers:
              - host: string
                port: 1812
                secret: string
            auth_servers_retries: 3
            auth_servers_timeout: 5
            coa_enabled: false
            coa_port: 3799
            network: string
            source_ip: string
          remote_syslog:
            enabled: true
            send_to_all_servers: true
            servers:
              - facility: config
                host: string
                port: 0
                protocol: udp
                severity: emerg
                tag: string
          report_gatt: false
          rogue:
            enabled: true
            honeypot_enabled: true
            min_duration: 10
            min_rssi: -80
            whitelisted_bssids:
              - string
            whitelisted_ssids:
              - string
          rtsa:
            app_waking: false
            disable_dead_reckoning: true
            disable_pressure_sensor: true
            enabled: true
            track_asset: true
          site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
          skyatp:
            enabled: true
            send_ip_mac_mapping: true
          srx_app:
            enabled: false
          ssh_keys:
            - string
          status_portal:
            enabled: true
            hostnames:
              - string
          switch_matching:
            enable: true
            rules:
              - additional_config_cmds:
                  - string
                name: string
                port_config:
                  property1:
                    ae_disable_lacp: true
                    ae_idx: 0
                    aggregated: false
                    description: string
                    disable_autoneg: true
                    duplex: auto
                    dynamic_usage: string
                    esilag: true
                    poe_disabled: true
                    speed: auto
                    usage: string
                  property2:
                    ae_disable_lacp: true
                    ae_idx: 0
                    aggregated: false
                    description: string
                    disable_autoneg: true
                    duplex: auto
                    dynamic_usage: string
                    esilag: true
                    poe_disabled: true
                    speed: auto
                    usage: string
                property1: string
                property2: string
          switch_mgmt:
            config_revert_timer: 10
            mxedge_proxy_host: string
            mxedge_proxy_port: 2222
            root_password: string
            use_mxedge_proxy: true
          track_anonymous_devices: false
          tunterm_monitoring:
            - host: string
              port: 0
              protocol: arp
              timeout: 300
          vars:
            property1: string
            property2: string
          vna:
            enabled: false
          vrf_instances:
            property1:
              extra_routes:
                property1:
                  via: 192.168.0.1
                property2:
                  via: 192.168.0.1
              networks:
                - string
            property2:
              extra_routes:
                property1:
                  via: 192.168.0.1
                property2:
                  via: 192.168.0.1
              networks:
                - string
          vrrp_groups:
            property1:
              auth_key: string
              auth_password: string
              auth_type: md5
              networks:
                property1:
                  ip: string
                property2:
                  ip: string
            property2:
              auth_key: string
              auth_password: string
              auth_type: md5
              networks:
                property1:
                  ip: string
                property2:
                  ip: string
          wan_vna:
            enabled: false
          watched_station_url: string
          whitelist_url: string
          wids:
            repeated_auth_failures:
              duration: 0
              threshold: 0
          wifi:
            cisco_enabled: true
            disable_11k: false
            disable_radios_when_power_constrained: true
            enable_arp_spoof_check: false
            enable_channel_144: false
            enable_shared_radio_scanning: true
            enable_vna: false
            enabled: true
            locate_connected: false
            locate_unconnected: false
            mesh_allow_dfs: false
            mesh_enabled: false
            proxy_arp: default
          wired_vna:
            enabled: false
          zone_occupancy_alert:
            email_notifiers:
              - string
            enabled: false
            threshold: 5
    site_ssr:
      description: ""
      properties:
        conductor_hosts:
          items:
            example: '"1.1.1.1", "2.2.2.2"'
            type: string
          type: array
        disable_stats:
          type: boolean
      type: object
      x-examples:
        example-1:
          conductor_hosts:
            - 1.1.1.1
            - 2.2.2.2
          disable_stats: false
    site_switch:
      description: Switch site settings
      properties:
        ap_affinity_threshold:
          default: 10
          description: ap_affinity_threshold ap_affinity_threshold can be added as a field under site/setting. By default this value is set to 12. If the field is set in both site/setting and org/setting, the value from site/setting will be used.
          type: integer
        config_revert_timer:
          default: 10
          description: the rollback timer for commit confirmed
          maximum: 30
          minimum: 1
          type: number
        dhcp_option_fqdn:
          default: false
          description: Enable to provide the FQDN with DHCP option 81
          type: boolean
        mxedge_proxy_host:
          type: string
        mxedge_proxy_port:
          default: 2222
          type: integer
        protect_re:
          description: restrict inbound-traffic to host  (draft)
          properties:
            allowed_services:
              description: optionally, services we'll allow
              items:
                example: '["snmp", "icmp"]'
                type: string
              type: array
            custom:
              items:
                properties:
                  port_range:
                    description: matched dst port, `0` means any
                    maxLength: 6553
                    minLength: 0
                    type: string
                  protocol:
                    default: any
                    enum:
                      - tcp
                      - udp
                      - icmp
                      - any
                    type: string
                  subnets:
                    items:
                      type: string
                    type: array
                type: object
              type: array
            enabled:
              description: |-
                when enabled, all traffic that is not essential to our operation will be dropped
                e.g. ntp / dns / traffic to mist will be allowed by default
              type: boolean
            trusted_hosts:
              description: when `enabled`==`true`, all traffic that is not essential to our operation will be dropped (e.g. if dhcpd is enabled, we'll make sure it works)
              items:
                example: '["10.242.3.0/24"]'
                type: string
              type: array
          type: object
        root_password:
          type: string
        use_mxedge_proxy:
          description: to use mxedge as proxy
          type: boolean
      type: object
    site_tunterm_monitoring:
      properties:
        host:
          description: can be ip, ipv6, hostname
          example: 10.2.8.15
          minLength: 1
          type: string
        port:
          description: when `protocol`==`tcp`
          example: 80
          type: integer
        protocol:
          enum:
            - arp
            - ping
            - tcp
          example: tcp
          minLength: 1
          type: string
        timeout:
          default: 300
          example: 300
          type: integer
      type: object
      x-examples:
        example-1:
          host: 10.2.8.15
          port: 80
          protocol: ping
          timeout: 300
    site_wids:
      description: WIDS site settings
      properties:
        repeated_auth_failures:
          properties:
            duration:
              description: window where a trigger will be detected and action to be taken (in seconds)
              type: number
            threshold:
              description: count of events to trigger
              type: integer
          type: object
      type: object
      x-examples:
        example-1:
          repeated_auth_failures:
            duration: 60
            threshold: 4
    site_wifi:
      description: Wi-Fi site settings
      properties:
        cisco_enabled:
          type: boolean
        disable_11k:
          default: false
          description: whether to disable 11k
          type: boolean
        disable_radios_when_power_constrained:
          type: boolean
        enable_arp_spoof_check:
          default: false
          description: when proxy_arp is enabled, check for arp spoofing.
          type: boolean
        enable_channel_144:
          default: false
          description: whether to enable channel 144 (some older clients may not support it)
          type: boolean
        enable_shared_radio_scanning:
          type: boolean
        enable_vna:
          default: false
          description: enable Virtual Network Assistant (using SUB-VNA license)
          type: boolean
        enabled:
          default: true
          description: enable WIFI feature (using SUB-MAN license)
          type: boolean
        locate_connected:
          default: false
          description: whether to locate connected clients
          type: boolean
        locate_unconnected:
          default: false
          description: whether to locate unconnected clients
          type: boolean
        mesh_allow_dfs:
          default: false
          description: whether to allow Mesh to use DFS channels. For DFS channels, Remote Mesh AP would have to do CAC when scanning for new Base AP, which is slow and will distrupt the connection. If roaming is desired, keep it disabled.
          type: boolean
        mesh_enable_crm:
          description: used to enable/disable CRM
          type: boolean
        mesh_enabled:
          default: false
          description: whether to enable Mesh feature for the site
          type: boolean
        mesh_psk:
          description: optional passphrase of mesh networking, default is generated randomly
          type: string
        mesh_ssid:
          description: optional ssid of mesh networking, default is based on site_id
          type: string
        proxy_arp:
          description: default / enabled / disabled
          enum:
            - default
            - enabled
            - disabled
          type: string
      type: object
      x-examples:
        example-1:
          cisco_enabled: true
          disable_11k: false
          disable_radios_when_power_constrained: false
          enable_arp_spoof_check: false
          enable_shared_radio_scanning: false
          enable_vna: false
          enabled: true
          locate_connected: false
          locate_unconnected: false
          mesh_enabled: true
          proxy_arp: default
    site_zone_occupancy_alert:
      description: Zone Occupancy alert site settings
      properties:
        email_notifiers:
          description: list of email addresses to send email notifications when the alert threshold is reached
          items:
            type: string
          type: array
        enabled:
          default: false
          description: indicate whether zone occupancy alert is enabled for the site
          type: boolean
        threshold:
          default: 5
          description: sending zone-occupancy-alert webhook message only if a zone stays non-compliant (i.e. actual occupancy > occupancy_limit) for a minimum duration specified in the threshold, in minutes
          maximum: 30
          minimum: 0
          type: integer
      type: object
      x-examples:
        example-1:
          email_notifiers:
            - foo@juniper.net
            - bar@juniper.net
          enabled: true
          threshold: 5
    sitegroup:
      description: Sites Group
      properties:
        created_time:
          readOnly: true
          type: number
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        site_ids:
          items:
            format: uuid
            type: string
          type: array
      required:
        - name
      type: object
      x-examples:
        example-1:
          created_time: 1594743724
          id: 08f7997d-xxxx-xxxx-xxxx-f92a65e9b96e
          modified_time: 1594743725
          name: test_only
          org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          site_ids:
            - e7006522-xxxx-xxxx-xxxx-1b6568a9d98c
    sitetemplate:
      properties:
        auto_upgrade:
          properties:
            day_of_week:
              type: string
            enabled:
              type: boolean
            time_of_day:
              type: string
            version:
              type: string
          type: object
        name:
          type: string
        vars:
          properties:
            SSID_STR:
              type: string
            VLAN_ID:
              type: string
          type: object
      type: object
      x-examples:
        example-1:
          auto_upgrade:
            day_of_week: mon
            enabled: true
            time_of_day: 01:00
            version: stable
          name: template_000
          vars:
            SSID_STR: mist
            VLAN_ID: "2345"
    sle_classifier_summary:
      description: ""
      properties:
        classifier:
          properties:
            impact:
              properties:
                num_aps:
                  type: number
                num_users:
                  type: number
              required:
                - num_users
                - num_aps
              type: object
            interval:
              type: number
            name:
              minLength: 1
              type: string
            samples:
              properties:
                degraded:
                  items:
                    type: number
                  type: array
                duration:
                  items:
                    type: number
                  type: array
                total:
                  items:
                    type: number
                  type: array
              required:
                - duration
                - total
                - degraded
              type: object
            x_label:
              minLength: 1
              type: string
            y_label:
              minLength: 1
              type: string
          required:
            - name
            - x_label
            - y_label
            - interval
            - samples
            - impact
          type: object
        end:
          type: number
        failures:
          items:
            type: object
          type: array
        impact:
          properties:
            num_aps:
              type: number
            num_users:
              type: number
            total_aps:
              type: number
            total_users:
              type: number
          required:
            - num_users
            - num_aps
            - total_users
            - total_aps
          type: object
        metric:
          minLength: 1
          type: string
        start:
          type: number
      required:
        - start
        - end
        - metric
        - classifier
        - impact
        - failures
      type: object
      x-examples:
        example-1:
          classifier:
            impact:
              num_aps: 2
              num_users: 17
            interval: 3600
            name: wifi-interference
            samples:
              degraded:
                - 0
                - 0
                - 210.03334
                - 3.1333334
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 102.5
                - 108.03333
                - 0
                - 0
                - 201.9
                - 566.48334
                - 135.63333
                - 0
              duration:
                - 0
                - 0
                - 210.03334
                - 3.1333334
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 102.5
                - 108.03333
                - 0
                - 0
                - 201.9
                - 566.48334
                - 135.63333
                - 0
              total:
                - 1302.3
                - 1289.0167
                - 1396.3167
                - 1423.6666
                - 1439.2167
                - 1414.7
                - 1361.0834
                - 1371.5834
                - 1372.0667
                - 1339.1
                - 1374.3667
                - 1369.9
                - 1352.4833
                - 1382.8
                - 1426.7167
                - 1425.6333
                - 1403.9333
                - 1420.75
                - 1416.8334
                - 1437.3334
                - 1425.1
                - 1485.3667
                - 1426.4333
                - 444.13333
            x_label: seconds
            y_label: user-minutes
          end: 1627312871
          failures: []
          impact:
            num_aps: 2
            num_users: 21
            total_aps: 3
            total_users: 26
          metric: capacity
          start: 1627226471
          value:
            classifier:
              impact:
                num_aps: 2
                num_users: 17
              interval: 3600
              name: wifi-interference
              samples:
                degraded:
                  - 0
                  - 0
                  - 210.03334
                  - 3.1333334
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 102.5
                  - 108.03333
                  - 0
                  - 0
                  - 201.9
                  - 566.48334
                  - 135.63333
                  - 0
                duration:
                  - 0
                  - 0
                  - 210.03334
                  - 3.1333334
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 102.5
                  - 108.03333
                  - 0
                  - 0
                  - 201.9
                  - 566.48334
                  - 135.63333
                  - 0
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 444.13333
              x_label: seconds
              y_label: user-minutes
            end: 1627312871
            failures: []
            impact:
              num_aps: 2
              num_users: 21
              total_aps: 3
              total_users: 26
            metric: capacity
            start: 1627226471
    sle_histogram:
      description: ""
      properties:
        data:
          items:
            properties:
              range:
                items:
                  nullable: true
                  type: number
                type: array
              value:
                type: number
            required:
              - value
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        end:
          type: number
        metric:
          minLength: 1
          type: string
        start:
          type: number
        x_label:
          minLength: 1
          type: string
        y_label:
          minLength: 1
          type: string
      required:
        - metric
        - start
        - end
        - data
        - x_label
        - y_label
      type: object
      x-examples:
        example-1:
          data:
            - range:
                - null
                - 0
              value: 0
            - range:
                - 0
                - 10
              value: 0
            - range:
                - 10
                - 20
              value: 5105
            - range:
                - 20
                - 30
              value: 10616
            - range:
                - 30
                - 40
              value: 40051
            - range:
                - 40
                - 50
              value: 141201
            - range:
                - 50
                - 60
              value: 949823
            - range:
                - 60
                - 70
              value: 686308
            - range:
                - 70
                - 80
              value: 177670
            - range:
                - 80
                - 90
              value: 689
            - range:
                - 90
                - 100
              value: 0
            - range:
                - 100
                - null
              value: 0
          end: 1627055181
          metric: capacity
          start: 1626968781
          value:
            data:
              - range:
                  - null
                  - 0
                value: 0
              - range:
                  - 0
                  - 10
                value: 0
              - range:
                  - 10
                  - 20
                value: 5105
              - range:
                  - 20
                  - 30
                value: 10616
              - range:
                  - 30
                  - 40
                value: 40051
              - range:
                  - 40
                  - 50
                value: 141201
              - range:
                  - 50
                  - 60
                value: 949823
              - range:
                  - 60
                  - 70
                value: 686308
              - range:
                  - 70
                  - 80
                value: 177670
              - range:
                  - 80
                  - 90
                value: 689
              - range:
                  - 90
                  - 100
                value: 0
              - range:
                  - 100
                  - null
                value: 0
            end: 1627055181
            metric: capacity
            start: 1626968781
            x_label: available-bandwidth(%)
            y_label: seconds
          x_label: available-bandwidth(%)
          y_label: seconds
    sle_impact_summary:
      description: ""
      properties:
        ap:
          items:
            properties:
              ap_mac:
                minLength: 1
                type: string
              degraded:
                type: number
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
            required:
              - ap_mac
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
        band:
          items:
            properties:
              band:
                minLength: 1
                type: string
              degraded:
                type: number
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
            required:
              - band
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
        classifier:
          type: string
        device_os:
          items:
            properties:
              degraded:
                type: number
              device_os:
                type: string
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
            required:
              - device_os
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
        device_type:
          items:
            properties:
              degraded:
                type: number
              device_type:
                type: string
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
            required:
              - device_type
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
        end:
          type: number
        failure:
          type: string
        metric:
          minLength: 1
          type: string
        start:
          type: number
        wlan:
          items:
            properties:
              degraded:
                type: number
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
              wlan_id:
                minLength: 1
                type: string
            required:
              - wlan_id
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
      required:
        - start
        - end
        - metric
        - classifier
        - failure
        - ap
        - wlan
        - device_os
        - device_type
        - band
      type: object
      x-examples:
        example-1:
          ap:
            - ap_mac: 5c5b3550bd2e
              degraded: 1486
              duration: 0
              name: ap43-off.lab
              total: 27406
            - ap_mac: d420b083e17a
              degraded: 3
              duration: 0
              name: ap33-ent.lab
              total: 1193
          band:
            - band: "24"
              degraded: 1410
              duration: 0
              name: "24"
              total: 28536
            - band: "5"
              degraded: 78
              duration: 0
              name: "5"
              total: 4679
          classifier: ""
          device_os:
            - degraded: 1329
              device_os: ""
              duration: 0
              name: unknown
              total: 27165
            - degraded: 81
              device_os: Linux
              duration: 0
              name: Linux
              total: 1437
            - degraded: 36
              device_os: Android 11
              duration: 0
              name: Android 11
              total: 761
            - degraded: 39
              device_os: "14.6"
              duration: 0
              name: "14.6"
              total: 2413
            - degraded: 2
              device_os: Catalina
              duration: 0
              name: Catalina
              total: 1438
          device_type:
            - degraded: 1410
              device_type: ""
              duration: 0
              name: unknown
              total: 28603
            - degraded: 2
              device_type: iPhone
              duration: 0
              name: iPhone
              total: 1263
            - degraded: 36
              device_type: OnePlus
              duration: 0
              name: OnePlus
              total: 761
            - degraded: 37
              device_type: iPad
              duration: 0
              name: iPad
              total: 1150
            - degraded: 2
              device_type: Mac
              duration: 0
              name: Mac
              total: 1438
          end: 1627312734
          failure: ""
          metric: capacity
          start: 1627226334
          value:
            ap:
              - ap_mac: 5c5b3550bd2e
                degraded: 1486
                duration: 0
                name: ap43-off.lab
                total: 27406
              - ap_mac: d420b083e17a
                degraded: 3
                duration: 0
                name: ap33-ent.lab
                total: 1193
            band:
              - band: "24"
                degraded: 1410
                duration: 0
                name: "24"
                total: 28536
              - band: "5"
                degraded: 78
                duration: 0
                name: "5"
                total: 4679
            classifier: ""
            device_os:
              - degraded: 1329
                device_os: ""
                duration: 0
                name: unknown
                total: 27165
              - degraded: 81
                device_os: Linux
                duration: 0
                name: Linux
                total: 1437
              - degraded: 36
                device_os: Android 11
                duration: 0
                name: Android 11
                total: 761
              - degraded: 39
                device_os: "14.6"
                duration: 0
                name: "14.6"
                total: 2413
              - degraded: 2
                device_os: Catalina
                duration: 0
                name: Catalina
                total: 1438
            device_type:
              - degraded: 1410
                device_type: ""
                duration: 0
                name: unknown
                total: 28603
              - degraded: 2
                device_type: iPhone
                duration: 0
                name: iPhone
                total: 1263
              - degraded: 36
                device_type: OnePlus
                duration: 0
                name: OnePlus
                total: 761
              - degraded: 37
                device_type: iPad
                duration: 0
                name: iPad
                total: 1150
              - degraded: 2
                device_type: Mac
                duration: 0
                name: Mac
                total: 1438
            end: 1627312734
            failure: ""
            metric: capacity
            start: 1627226334
            wlan:
              - degraded: 37
                duration: 0
                name: MlN.ADM
                total: 1150
                wlan_id: ba3f85fc-ba48-4d8f-ad89-152e5c42db18
              - degraded: 1410
                duration: 0
                name: MlN
                total: 28603
                wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
              - degraded: 41
                duration: 0
                name: MlN.1X
                total: 3462
                wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
          wlan:
            - degraded: 37
              duration: 0
              name: MlN.ADM
              total: 1150
              wlan_id: ba3f85fc-ba48-4d8f-ad89-152e5c42db18
            - degraded: 1410
              duration: 0
              name: MlN
              total: 28603
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - degraded: 41
              duration: 0
              name: MlN.1X
              total: 3462
              wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
    sle_impacted_applications:
      properties:
        apps:
          items:
            properties:
              app:
                type: string
              degraded:
                type: integer
              duration:
                type: integer
              name:
                type: string
              threshold:
                type: integer
              total:
                type: integer
            type: object
          type: array
        classifier:
          type: string
        end:
          type: integer
        failure:
          type: string
        limit:
          type: string
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          apps:
            - app: ZOOM
              degraded: 371103
              duration: 0
              name: ZOOM
              threshold: 173
              total: 1771274
          classifier: ""
          end: 1668760746
          failure: ""
          limit: "1000"
          metric: application-health
          page: 1
          start: 1668121200
          total_count: 1
    sle_impacted_aps:
      description: ""
      properties:
        aps:
          items:
            properties:
              ap_mac:
                minLength: 1
                type: string
              degraded:
                type: number
              duration:
                type: number
              name:
                minLength: 1
                type: string
              total:
                type: number
            required:
              - ap_mac
              - name
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
        classifier:
          type: string
        end:
          type: number
        failure:
          type: string
        limit:
          type: number
        metric:
          minLength: 1
          type: string
        page:
          type: number
        start:
          type: number
        total_count:
          type: number
      required:
        - start
        - end
        - metric
        - classifier
        - failure
        - total_count
        - page
        - limit
        - aps
      type: object
      x-examples:
        example-1:
          aps:
            - ap_mac: 5c5b3550bd2e
              degraded: 1486
              duration: 0
              name: ap43-off.lab
              total: 27377
            - ap_mac: d420b083e17a
              degraded: 3
              duration: 0
              name: ap33-ent.lab
              total: 1189
          classifier: ""
          end: 1627313016
          failure: ""
          limit: 1000
          metric: capacity
          page: 1
          start: 1627226616
          total_count: 2
          value:
            aps:
              - ap_mac: 5c5b35500000
                degraded: 1486
                duration: 0
                name: ap43.lab
                total: 27377
              - ap_mac: d420b0830000
                degraded: 3
                duration: 0
                name: ap33.lab
                total: 1189
            classifier: ""
            end: 1627313016
            failure: ""
            limit: 1000
            metric: capacity
            page: 1
            start: 1627226616
            total_count: 2
    sle_impacted_chassis:
      properties:
        chassis:
          items:
            properties:
              chassis:
                type: string
              degraded:
                type: number
              duration:
                type: number
              role:
                type: string
              switch_mac:
                type: string
              switch_name:
                type: string
              total:
                type: number
            type: object
          type: array
        classifier:
          type: string
        end:
          type: integer
        failure:
          type: string
        limit:
          type: integer
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          chassis:
            - chassis: "1"
              degraded: 12.283334
              duration: 13655.167
              role: master
              switch_mac: d0dd49012345
              switch_name: test-chassis
              total: 13655.167
          classifier: ""
          end: 1668760643
          failure: ""
          limit: 1000
          metric: switch-health
          page: 1
          start: 1668121200
          total_count: 1
    sle_impacted_clients:
      properties:
        classifier:
          type: string
        clients:
          items:
            properties:
              degraded:
                type: integer
              duration:
                type: integer
              mac:
                type: string
              name:
                type: string
              switches:
                items:
                  properties:
                    interfaces:
                      items:
                        type: string
                      type: array
                    switch_mac:
                      type: string
                    switch_name:
                      type: string
                  type: object
                type: array
              total:
                type: integer
            type: object
          type: array
        end:
          type: integer
        failure:
          type: string
        limit:
          type: integer
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          classifier: ""
          clients:
            - degraded: 40
              duration: 11014
              mac: "001122334455"
              name: test-device
              switches:
                - interfaces:
                    - ge-0/0/6
                  switch_mac: 2c2131001122
                  switch_name: test-ex
              total: 11014
          end: 1668760198
          failure: ""
          limit: 1000
          metric: switch-throughput
          page: 1
          start: 1668726000
          total_count: 1
    sle_impacted_gateways:
      properties:
        classifier:
          type: string
        end:
          type: integer
        failure:
          type: string
        gateways:
          items:
            properties:
              degraded:
                type: number
              duration:
                type: integer
              gateway_mac:
                type: string
              gateway_model:
                type: string
              gateway_version:
                type: string
              name:
                type: string
              total:
                type: integer
            type: object
          type: array
        limit:
          type: integer
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          classifier: ""
          end: 1668760746
          failure: ""
          gateways:
            - degraded: 758573.1
              duration: 2770997
              gateway_mac: fc3342001122
              gateway_model: SRX320
              gateway_version: 20.4R1.12
              name: test-SRX
              total: 2770997
          limit: 1000
          metric: application-health
          page: 1
          start: 1668121200
          total_count: 1
    sle_impacted_interfaces:
      properties:
        classifier:
          type: string
        end:
          type: integer
        failure:
          type: string
        interfaces:
          items:
            properties:
              degraded:
                type: number
              duration:
                type: number
              interface_name:
                type: string
              switch_mac:
                type: string
              switch_name:
                type: string
              total:
                type: number
            type: object
          type: array
        limit:
          type: integer
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          classifier: ""
          end: 1668760198
          failure: ""
          interfaces:
            - degraded: 11.583333
              duration: 765.4667
              interface_name: ge-0/0/10
              switch_mac: 2c2131001122
              switch_name: test-ex
              total: 765.4667
            - degraded: 191.08333
              duration: 13775.35
              interface_name: xe-0/1/0
              switch_mac: 2c2131001122
              switch_name: test-ex
              total: 13775.35
          limit: 1000
          metric: switch-throughput
          page: 1
          start: 1668726000
          total_count: 5
    sle_impacted_switches:
      properties:
        classifier:
          type: string
        end:
          type: integer
        failure:
          type: string
        limit:
          type: integer
        metric:
          type: string
        page:
          type: integer
        start:
          type: integer
        switches:
          items:
            properties:
              degraded:
                type: number
              duration:
                type: number
              interface:
                items:
                  type: string
                type: array
              name:
                type: string
              switch_mac:
                type: string
              switch_model:
                type: string
              switch_version:
                type: string
              total:
                type: number
            type: object
          type: array
        total_count:
          type: integer
      type: object
      x-examples:
        example-1:
          classifier: ""
          end: 1668760198
          failure: ""
          limit: 1000
          metric: switch-throughput
          page: 1
          start: 1668726000
          switches:
            - degraded: 109.88333
              duration: 5753.75
              interface:
                - ge-0/0/11
                - xe-0/1/0
              name: test-ex
              switch_mac: 2c2131001122
              switch_model: EX2300-C-12P
              switch_version: 20.4R3-S3.4
              total: 5753.75
          total_count: 1
    sle_impacted_users:
      description: ""
      properties:
        classifier:
          type: string
        end:
          type: number
        failure:
          type: string
        limit:
          type: number
        metric:
          minLength: 1
          type: string
        page:
          type: number
        start:
          type: number
        total_count:
          type: number
        users:
          items:
            properties:
              ap_mac:
                minLength: 1
                type: string
              ap_name:
                minLength: 1
                type: string
              degraded:
                type: number
              device_os:
                minLength: 1
                type: string
              device_type:
                minLength: 1
                type: string
              duration:
                type: number
              mac:
                minLength: 1
                type: string
              name:
                minLength: 1
                type: string
              ssid:
                minLength: 1
                type: string
              total:
                type: number
              wlan_id:
                minLength: 1
                type: string
            required:
              - name
              - mac
              - ap_mac
              - ap_name
              - wlan_id
              - ssid
              - device_type
              - device_os
              - duration
              - degraded
              - total
          minItems: 1
          type: array
          uniqueItems: true
      required:
        - start
        - end
        - metric
        - classifier
        - failure
        - total_count
        - page
        - limit
        - users
      type: object
      x-examples:
        example-1:
          classifier: ""
          end: 1627313103
          failure: ""
          limit: 1000
          metric: capacity
          page: 1
          start: 1627226703
          total_count: 21
          users:
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 86
              device_os: unknown
              device_type: unknown
              duration: 1401
              mac: 500291fe6230
              name: lab-relay-srv
              ssid: MlN
              total: 1401
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 85
              device_os: unknown
              device_type: unknown
              duration: 1383
              mac: 807d3a1824b8
              name: lab-power-bdr
              ssid: MlN
              total: 1383
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 87
              device_os: unknown
              device_type: unknown
              duration: 1379
              mac: bcddc21699e1
              name: lab-notif-off-1699e1
              ssid: MlN
              total: 1379
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 84
              device_os: unknown
              device_type: unknown
              duration: 1378
              mac: 84f3eb73d649
              name: lab-emergency
              ssid: MlN
              total: 1378
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 37
              device_os: "14.6"
              device_type: iPad
              duration: 1125
              mac: b2b8a2a0715d
              name: iPad-14121
              ssid: MlN.ADM
              total: 1125
              wlan_id: ba3f85fc-ba48-4d8f-ad89-152e5c42db18
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 85
              device_os: unknown
              device_type: unknown
              duration: 1380
              mac: 807d3a45af12
              name: switch-3
              ssid: MlN
              total: 1380
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 82
              device_os: unknown
              device_type: unknown
              duration: 1363
              mac: 083af2aab79c
              name: cctv-b
              ssid: MlN
              total: 1363
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: d420b083e17a
              ap_name: ap33-ent.lab
              degraded: 2
              device_os: "14.6"
              device_type: iPhone
              duration: 1270
              mac: dc080f36a7c5
              name: aPhone-20973
              ssid: MlN.1X
              total: 1270
              wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 85
              device_os: unknown
              device_type: unknown
              duration: 1378
              mac: 84f3eb4b5347
              name: lab-power-r-3d
              ssid: MlN
              total: 1378
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 81
              device_os: unknown
              device_type: unknown
              duration: 1377
              mac: 84f3eb4a88f7
              name: lab-power-r-wm
              ssid: MlN
              total: 1377
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 36
              device_os: Android 11
              device_type: OnePlus
              duration: 767
              mac: 4c4feedca8d9
              name: OnePlus-8
              ssid: MlN.1X
              total: 767
              wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 72
              device_os: unknown
              device_type: unknown
              duration: 1383
              mac: 807d3a45b0eb
              name: lab-lampe-lvg
              ssid: MlN
              total: 1383
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 87
              device_os: unknown
              device_type: unknown
              duration: 1394
              mac: 84f3eb18751a
              name: lab-sensor-ent
              ssid: MlN
              total: 1394
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 70
              device_os: unknown
              device_type: unknown
              duration: 1385
              mac: 00c141310a44
              name: mvs
              ssid: MlN
              total: 1385
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 2
              device_os: Catalina
              device_type: Mac
              duration: 1405
              mac: a483e739f537
              name: tmunzer-mbp
              ssid: MlN.1X
              total: 1405
              wlan_id: a937da77-fe3c-4784-86c4-f2134d7b1483
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 84
              device_os: unknown
              device_type: unknown
              duration: 1397
              mac: bcddc216a039
              name: lab-sensor-net
              ssid: MlN
              total: 1397
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 83
              device_os: unknown
              device_type: unknown
              duration: 1395
              mac: bcddc2162a9c
              name: lab-sensor-esxi
              ssid: MlN
              total: 1395
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 85
              device_os: unknown
              device_type: unknown
              duration: 1380
              mac: bcddc2161c78
              name: lab-notif-bdr-161c78
              ssid: MlN
              total: 1380
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 81
              device_os: Linux
              device_type: unknown
              duration: 1403
              mac: 5caafd0d1a88
              name: SonosZP
              ssid: MlN
              total: 1403
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 80
              device_os: unknown
              device_type: unknown
              duration: 1383
              mac: 483fda87ae1c
              name: wled-lab-led-off
              ssid: MlN
              total: 1383
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
            - ap_mac: 5c5b3550bd2e
              ap_name: ap43-off.lab
              degraded: 83
              device_os: unknown
              device_type: unknown
              duration: 1378
              mac: 10521c42ce5f
              name: lab-light-off
              ssid: MlN
              total: 1378
              wlan_id: 649a2336-b1e0-47bd-961c-f637dbe50e7b
          value:
            classifier: ""
            end: 1627313103
            failure: ""
            limit: 1000
            metric: capacity
            page: 1
            start: 1627226703
            total_count: 21
            users:
              - ap_mac: d420b0830000
                ap_name: ap33.lab
                degraded: 2
                device_os: "14.6"
                device_type: iPhone
                duration: 1270
                mac: dc080f360000
                name: aPhone-20973
                ssid: lab.1X
                total: 1270
                wlan_id: a937da77-0000-0000-0000-f2134d7b1483
              - ap_mac: 5c5b35500000
                ap_name: ap43.lab
                degraded: 36
                device_os: Android 11
                device_type: OnePlus
                duration: 767
                mac: 4c4feedc0000
                name: OnePlus-8
                ssid: lab.1X
                total: 767
                wlan_id: a937da77-0000-0000-0000-f2134d7b1483
              - ap_mac: 5c5b35500000
                ap_name: ap43.lab
                degraded: 2
                device_os: Catalina
                device_type: Mac
                duration: 1405
                mac: a483e7390000
                name: tmunzer-mbp
                ssid: lab.1X
                total: 1405
                wlan_id: a937da77-0000-0000-0000-f2134d7b1483
              - ap_mac: 5c5b35500000
                ap_name: ap43.lab
                degraded: 81
                device_os: Linux
                device_type: unknown
                duration: 1403
                mac: 5caafd0d0000
                name: SonosZP
                ssid: lab
                total: 1403
                wlan_id: 649a2336-0000-0000-0000-f637dbe50e7b
    sle_summary:
      description: ""
      properties:
        classifiers:
          items:
            properties:
              impact:
                properties:
                  num_aps:
                    type: number
                  num_users:
                    type: number
                  total_aps:
                    type: number
                  total_users:
                    type: number
                required:
                  - num_users
                  - num_aps
                  - total_users
                  - total_aps
                type: object
              interval:
                type: number
              name:
                minLength: 1
                type: string
              samples:
                properties:
                  degraded:
                    items:
                      type: number
                    type: array
                  duration:
                    items:
                      type: number
                    type: array
                  total:
                    items:
                      type: number
                    type: array
                required:
                  - duration
                  - total
                  - degraded
                type: object
              x_label:
                minLength: 1
                type: string
              y_label:
                minLength: 1
                type: string
            required:
              - name
              - x_label
              - y_label
              - interval
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        end:
          type: number
        events:
          items:
            type: object
          type: array
        impact:
          properties:
            num_aps:
              type: number
            num_users:
              type: number
            total_aps:
              type: number
            total_users:
              type: number
          required:
            - num_users
            - num_aps
            - total_users
            - total_aps
          type: object
        sle:
          properties:
            interval:
              type: number
            name:
              minLength: 1
              type: string
            samples:
              properties:
                degraded:
                  items:
                    type: number
                  type: array
                total:
                  items:
                    type: number
                  type: array
                value:
                  items:
                    type: number
                  type: array
              required:
                - total
                - degraded
                - value
              type: object
            x_label:
              minLength: 1
              type: string
            y_label:
              minLength: 1
              type: string
          required:
            - name
            - x_label
            - y_label
            - interval
            - samples
          type: object
        start:
          type: number
      required:
        - start
        - end
        - sle
        - impact
        - classifiers
        - events
      type: object
      x-examples:
        example-1:
          classifiers:
            - impact:
                num_aps: 1
                num_users: 4
                total_aps: 3
                total_users: 26
              interval: 3600
              name: client-count
              samples:
                degraded:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 5.8
                  - 0
                  - 0
                  - 0
                  - 4.65
                  - 0
                  - 7.55
                  - 47.55
                  - 13.266666
                duration:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 5.8
                  - 0
                  - 0
                  - 0
                  - 4.65
                  - 0
                  - 7.55
                  - 47.55
                  - 13.266666
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 289.83334
              x_label: seconds
              y_label: user-minutes
            - impact:
                num_aps: 2
                num_users: 17
                total_aps: 3
                total_users: 26
              interval: 3600
              name: wifi-interference
              samples:
                degraded:
                  - 0
                  - 0
                  - 210.03334
                  - 3.1333334
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 102.5
                  - 108.03333
                  - 0
                  - 0
                  - 201.9
                  - 566.48334
                  - 135.63333
                  - 0
                duration:
                  - 0
                  - 0
                  - 210.03334
                  - 3.1333334
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 102.5
                  - 108.03333
                  - 0
                  - 0
                  - 201.9
                  - 566.48334
                  - 135.63333
                  - 0
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 289.83334
              x_label: seconds
              y_label: user-minutes
            - impact:
                num_aps: 0
                num_users: 0
                total_aps: 3
                total_users: 26
              interval: 3600
              name: client-usage
              samples:
                degraded:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                duration:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 289.83334
              x_label: seconds
              y_label: user-minutes
            - impact:
                num_aps: 1
                num_users: 17
                total_aps: 3
                total_users: 26
              interval: 3600
              name: non-wifi-interference
              samples:
                degraded:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 16.65
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 31.15
                  - 17.616667
                  - 17.85
                  - 0
                  - 0
                  - 0
                  - 0
                duration:
                  - 0
                  - 0
                  - 0
                  - 0
                  - 16.65
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 31.15
                  - 17.616667
                  - 17.85
                  - 0
                  - 0
                  - 0
                  - 0
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 289.83334
              x_label: seconds
              y_label: user-minutes
          end: 1627312606
          events: []
          impact:
            num_aps: 2
            num_users: 21
            total_aps: 3
            total_users: 26
          sle:
            interval: 3600
            name: capacity
            samples:
              degraded:
                - 0
                - 0
                - 210.03334
                - 3.1333334
                - 16.65
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 0
                - 5.8
                - 102.5
                - 139.18333
                - 17.616667
                - 22.5
                - 201.9
                - 574.0333
                - 183.18333
                - 13.266666
              total:
                - 1302.3
                - 1289.0167
                - 1396.3167
                - 1423.6666
                - 1439.2167
                - 1414.7
                - 1361.0834
                - 1371.5834
                - 1372.0667
                - 1339.1
                - 1374.3667
                - 1369.9
                - 1352.4833
                - 1382.8
                - 1426.7167
                - 1425.6333
                - 1403.9333
                - 1420.75
                - 1416.8334
                - 1437.3334
                - 1425.1
                - 1485.3667
                - 1426.4333
                - 289.83334
              value:
                - 0.6764934
                - 0.6783766
                - 0.641645
                - 0.6934629
                - 0.68676674
                - 0.6834809
                - 0.6961604
                - 0.6979584
                - 0.7033722
                - 0.70410794
                - 0.7025278
                - 0.70305353
                - 0.70292175
                - 0.7009334
                - 0.69344264
                - 0.68596864
                - 0.5952168
                - 0.62183666
                - 0.68161446
                - 0.65352744
                - 0.6183489
                - 0.54178274
                - 0.6044712
                - 0.66845906
            x_label: seconds
            y_label: "%"
          start: 1627226206
          value:
            classifiers:
              - impact:
                  num_aps: 1
                  num_users: 4
                  total_aps: 3
                  total_users: 26
                interval: 3600
                name: client-count
                samples:
                  degraded:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 5.8
                    - 0
                    - 0
                    - 0
                    - 4.65
                    - 0
                    - 7.55
                    - 47.55
                    - 13.266666
                  duration:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 5.8
                    - 0
                    - 0
                    - 0
                    - 4.65
                    - 0
                    - 7.55
                    - 47.55
                    - 13.266666
                  total:
                    - 1302.3
                    - 1289.0167
                    - 1396.3167
                    - 1423.6666
                    - 1439.2167
                    - 1414.7
                    - 1361.0834
                    - 1371.5834
                    - 1372.0667
                    - 1339.1
                    - 1374.3667
                    - 1369.9
                    - 1352.4833
                    - 1382.8
                    - 1426.7167
                    - 1425.6333
                    - 1403.9333
                    - 1420.75
                    - 1416.8334
                    - 1437.3334
                    - 1425.1
                    - 1485.3667
                    - 1426.4333
                    - 289.83334
                x_label: seconds
                y_label: user-minutes
              - impact:
                  num_aps: 2
                  num_users: 17
                  total_aps: 3
                  total_users: 26
                interval: 3600
                name: wifi-interference
                samples:
                  degraded:
                    - 0
                    - 0
                    - 210.03334
                    - 3.1333334
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 102.5
                    - 108.03333
                    - 0
                    - 0
                    - 201.9
                    - 566.48334
                    - 135.63333
                    - 0
                  duration:
                    - 0
                    - 0
                    - 210.03334
                    - 3.1333334
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 102.5
                    - 108.03333
                    - 0
                    - 0
                    - 201.9
                    - 566.48334
                    - 135.63333
                    - 0
                  total:
                    - 1302.3
                    - 1289.0167
                    - 1396.3167
                    - 1423.6666
                    - 1439.2167
                    - 1414.7
                    - 1361.0834
                    - 1371.5834
                    - 1372.0667
                    - 1339.1
                    - 1374.3667
                    - 1369.9
                    - 1352.4833
                    - 1382.8
                    - 1426.7167
                    - 1425.6333
                    - 1403.9333
                    - 1420.75
                    - 1416.8334
                    - 1437.3334
                    - 1425.1
                    - 1485.3667
                    - 1426.4333
                    - 289.83334
                x_label: seconds
                y_label: user-minutes
              - impact:
                  num_aps: 0
                  num_users: 0
                  total_aps: 3
                  total_users: 26
                interval: 3600
                name: client-usage
                samples:
                  degraded:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                  duration:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                  total:
                    - 1302.3
                    - 1289.0167
                    - 1396.3167
                    - 1423.6666
                    - 1439.2167
                    - 1414.7
                    - 1361.0834
                    - 1371.5834
                    - 1372.0667
                    - 1339.1
                    - 1374.3667
                    - 1369.9
                    - 1352.4833
                    - 1382.8
                    - 1426.7167
                    - 1425.6333
                    - 1403.9333
                    - 1420.75
                    - 1416.8334
                    - 1437.3334
                    - 1425.1
                    - 1485.3667
                    - 1426.4333
                    - 289.83334
                x_label: seconds
                y_label: user-minutes
              - impact:
                  num_aps: 1
                  num_users: 17
                  total_aps: 3
                  total_users: 26
                interval: 3600
                name: non-wifi-interference
                samples:
                  degraded:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 16.65
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 31.15
                    - 17.616667
                    - 17.85
                    - 0
                    - 0
                    - 0
                    - 0
                  duration:
                    - 0
                    - 0
                    - 0
                    - 0
                    - 16.65
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 0
                    - 31.15
                    - 17.616667
                    - 17.85
                    - 0
                    - 0
                    - 0
                    - 0
                  total:
                    - 1302.3
                    - 1289.0167
                    - 1396.3167
                    - 1423.6666
                    - 1439.2167
                    - 1414.7
                    - 1361.0834
                    - 1371.5834
                    - 1372.0667
                    - 1339.1
                    - 1374.3667
                    - 1369.9
                    - 1352.4833
                    - 1382.8
                    - 1426.7167
                    - 1425.6333
                    - 1403.9333
                    - 1420.75
                    - 1416.8334
                    - 1437.3334
                    - 1425.1
                    - 1485.3667
                    - 1426.4333
                    - 289.83334
                x_label: seconds
                y_label: user-minutes
            end: 1627312606
            events: []
            impact:
              num_aps: 2
              num_users: 21
              total_aps: 3
              total_users: 26
            sle:
              interval: 3600
              name: capacity
              samples:
                degraded:
                  - 0
                  - 0
                  - 210.03334
                  - 3.1333334
                  - 16.65
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 0
                  - 5.8
                  - 102.5
                  - 139.18333
                  - 17.616667
                  - 22.5
                  - 201.9
                  - 574.0333
                  - 183.18333
                  - 13.266666
                total:
                  - 1302.3
                  - 1289.0167
                  - 1396.3167
                  - 1423.6666
                  - 1439.2167
                  - 1414.7
                  - 1361.0834
                  - 1371.5834
                  - 1372.0667
                  - 1339.1
                  - 1374.3667
                  - 1369.9
                  - 1352.4833
                  - 1382.8
                  - 1426.7167
                  - 1425.6333
                  - 1403.9333
                  - 1420.75
                  - 1416.8334
                  - 1437.3334
                  - 1425.1
                  - 1485.3667
                  - 1426.4333
                  - 289.83334
                value:
                  - 0.6764934
                  - 0.6783766
                  - 0.641645
                  - 0.6934629
                  - 0.68676674
                  - 0.6834809
                  - 0.6961604
                  - 0.6979584
                  - 0.7033722
                  - 0.70410794
                  - 0.7025278
                  - 0.70305353
                  - 0.70292175
                  - 0.7009334
                  - 0.69344264
                  - 0.68596864
                  - 0.5952168
                  - 0.62183666
                  - 0.68161446
                  - 0.65352744
                  - 0.6183489
                  - 0.54178274
                  - 0.6044712
                  - 0.66845906
              x_label: seconds
              y_label: "%"
            start: 1627226206
    sle_threshold:
      description: ""
      properties:
        default:
          readOnly: true
          type: number
        direction:
          minLength: 1
          readOnly: true
          type: string
        maximum:
          type: number
        metric:
          minLength: 1
          readOnly: true
          type: string
        minimum:
          type: number
        threshold:
          minLength: 1
          readOnly: true
          type: string
        units:
          minLength: 1
          readOnly: true
          type: string
      title: sle_threshold
      type: object
      x-examples:
        example-1:
          default: -72
          direction: left
          maximum: -60
          metric: coverage
          minimum: -90
          threshold: "-66"
          units: dBm
          value:
            default: 20
            direction: left
            maximum: 50
            metric: capacity
            minimum: 5
            threshold: "50"
            units: "%"
    sso:
      description: SSO
      properties:
        created_time:
          readOnly: true
          type: number
        custom_logout_url:
          description: optional, a URL we will redirect the user after user logout from Mist (for some IdP which supports a custom logout URL that is different from SP-initiated SLO process)
          type: string
        default_role:
          description: default role to assign if there’s no match. By default, an assertion is treated as invalid when there’s no role matched
          type: string
        domain:
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        idp_cert:
          description: if `idp_type`==`saml`. IDP Cert (used to verify the signed response)
          type: string
        idp_sign_algo:
          description: if `idp_type`==`saml`. Signing algorithm for SAML Assertion
          type: string
        idp_sso_url:
          description: IDP Single-Sign-On URL
          type: string
        idp_type:
          default: saml
          enum:
            - saml
            - ldap
            - oauth
          type: string
        ignore_unmatched_roles:
          description: ignore any unmatched roles provided in assertion. By default, an assertion is treated as invalid for any unmatched role
          type: boolean
        issuer:
          description: if `idp_type`==`saml`. IDP issuer URL
          type: string
        ldap_base_dn:
          description: if `idp_type`==`ldap`
          type: string
        ldap_bind_dn:
          description: if `idp_type`==`ldap`
          type: string
        ldap_bind_password:
          description: if `idp_type`==`ldap`
          type: string
        ldap_certs:
          description: if `idp_type`==`ldap`
          items:
            type: string
          type: array
        ldap_client_cert:
          description: if `idp_type`==`ldap`
          type: string
        ldap_client_key:
          description: if `idp_type`==`ldap`
          type: string
        ldap_group_attr:
          description: if `idp_type`==`ldap`
          type: string
        ldap_group_dn:
          description: if `ldap_type`==`custom`
          type: string
        ldap_group_filter:
          description: if `ldap_type`==`custom`
          type: string
        ldap_server_hosts:
          description: if `idp_type`==`ldap`
          items:
            type: string
          type: array
        ldap_type:
          default: ad
          description: if `idp_type`==`ldap`
          enum:
            - ad
            - okta
            - custom
          type: string
        ldap_user_filter:
          description: |-
            * if `ldap_type`==`ad`: "(CN=%s)"
            * if `ldap_type`==`okta`: "(uid=%s)"
            * if `ldap_type`==`custom`
          type: string
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        name:
          description: name
          type: string
        nameid_format:
          default: email
          description: if `idp_type`==`saml`
          enum:
            - email
            - unspecified
          type: string
        oauth_cc_client_id:
          description: if `oauth_type`==`okta`, Client Credentials
          example: e60da615-7def-4c5a-8196-43675f45e174
          type: string
        oauth_cc_client_secret:
          description: if `oauth_type`==`okta`, oauth_cc_client_secret is RSA private key, of the form "-----BEGIN RSA PRIVATE KEY--...."
          example: akL8Q~5kWFMVFYl4TFZ3fi~7cMdyDONi6cj01cpH
          type: string
        oauth_discovery_url:
          description: if `idp_type`==`oauth`
          type: string
        oauth_ropc_client_id:
          description: ropc = Resource Owner Password Credentials
          example: 9ce04c97-b5b1-4ec8-af17-f5ed42d2daf7
          type: string
        oauth_ropc_secret:
          description: oauth_ropc_client_secret can be empty if oauth_type is azure
          example: blM9R~6kWFMVFYl4TFZ3fi~8cMdyDONi6cj01dqI
          type: string
        oauth_tenant_id:
          description: if `oauth_type`==`okta`, oauth_tenant_id
          example: dev-88336535
          type: string
        oauth_type:
          default: azure
          enum:
            - azure
            - okta
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        role_attr_extraction:
          description: |-
            optional, custom role attribute parsing scheme

            Supported Role Parsing Schemes
            <table><tr><th>Name</th><th>Scheme</th></tr><tr><td>cn</td><td><ul><li>The expected role attribute format in SAML Assertion is “CN=cn,OU=ou1,OU=ou2,…”</li><li>CN (the key) is case insensitive and exactly 1 CN is expected (or the entire entry will be ignored)</li><li>E.g. if role attribute is “CN=cn,OU=ou1,OU=ou2” then parsed role value is “cn”</li></ul></td></tr></table>
          type: string
        role_attr_from:
          default: role
          description: " name of the attribute in SAML Assertion to extract role from"
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        type:
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          created_time: 1583144587
          custom_logout_url: https://...
          domain: xxxxxxxx
          id: de6ec5cd-xxxx-xxxx-xxxx-c8cda102947f
          idp_cert: |-
            -----BEGIN CERTIFICATE-----
            MIIJIjC...HpsEn8Y=
            -----END CERTIFICATE-----
          idp_sign_algo: sha256
          idp_sso_url: https://...
          issuer: https://...
          modified_time: 1583144587
          msp_id: 00000000-xxxx-xxxx-xxxx-000000000000
          name: PingId
          nameid_format: email
          org_id: 30ab0bf5-xxxx-xxxx-xxxx-feeb1c17654f
          type: SAML
    ssorole:
      description: SSO Role response
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        privileges:
          items:
            $ref: "#/components/schemas/privileges"
          minItems: 1
          type: array
          uniqueItems: true
        site_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - name
        - privileges
      type: object
      x-examples:
        example-1:
          created_time: 0
          id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          modified_time: 0
          msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          name: string
          org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          privileges:
            - msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              msp_name: string
              name: string
              org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              org_name: string
              orggroup_ids:
                - string
              role: string
              scope: string
              site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              sitegroup_ids:
                - string
    ssr_upgrade_response:
      description: ""
      properties:
        channel:
          minLength: 1
          type: string
        counts:
          properties:
            failed:
              type: integer
            queued:
              type: integer
            success:
              type: integer
            upgrading:
              type: integer
          required:
            - queued
            - upgrading
            - success
            - failed
          type: object
        device_type:
          type: string
        id:
          minLength: 1
          type: string
        status:
          minLength: 1
          type: string
        strategy:
          minLength: 1
          type: string
        versions:
          type: object
      required:
        - status
        - strategy
        - versions
        - channel
        - id
        - counts
        - device_type
      type: object
      x-examples:
        example-1:
          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: {}
    stats_asset:
      description: Asset statistics
      properties:
        battery_voltage:
          description: battery voltage, in mV
          type: number
        eddystone_uid_instance:
          type: string
        eddystone_uid_namespace:
          type: string
        eddystone_url_url:
          type: string
        ibeacon_major:
          type: integer
        ibeacon_minor:
          type: integer
        ibeacon_uuid:
          format: uuid
          type: string
        last_seen:
          description: last seen timestamp
          type: number
        mac:
          description: bluetooth MAC
          type: string
        map_id:
          description: map where the device belongs to
          format: uuid
          type: string
        name:
          description: name / label of the device
          type: string
        rssizones:
          description: only send this for individual asset stat
          items:
            properties:
              id:
                format: uuid
                type: string
              since:
                type: number
            type: object
          type: array
        x:
          description: x in pixel
          type: number
        y:
          description: y in pixel
          type: number
        zones:
          description: only send this for individual asset stat
          items:
            properties:
              id:
                format: uuid
                type: string
              since:
                type: number
            type: object
          type: array
      required:
        - mac
      type: object
      x-examples:
        example-1:
          battery_voltage: 3370
          eddystone_uid_instance: 5c5b35000001
          eddystone_uid_namespace: 2818e3868dec25629ede
          eddystone_url_url: https://www.abc.com
          ibeacon_major: 13
          ibeacon_minor: 138
          ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
          last_seen: 1492110810
          mac: a31eb04e1c38
          map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
          name: Expensive Instrument
          x: 60
          y: 80
        example-2:
          battery_voltage: 3370
          last_seen: 1492110810
          mac: a31eb04e1c38
          map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
          name: Expensive Instrument
          rssizones:
            - id: b2af5d7b-c3d0-c5c9-57e9-4d740871db47
              since: 1428939600
          x: 60
          y: 80
          zones:
            - id: 8ac84899-32db-6327-334c-9b6d58544cfe
              since: 1428939600
    stats_beacon:
      description: Beacon statistics
      items:
        properties:
          battery_voltage:
            description: battery voltage, in mV
            type: number
          eddystone_instance:
            type: string
          eddystone_namespace:
            type: string
          last_seen:
            type: number
          mac:
            type: string
          map_id:
            format: uuid
            type: string
          name:
            type: string
          power:
            type: integer
          type:
            type: string
          x:
            type: number
          y:
            type: number
        required:
          - mac
          - name
          - type
          - power
          - map_id
          - x
          - y
          - last_seen
        type: object
      minItems: 1
      type: array
      uniqueItems: true
    stats_bgp:
      properties:
        evpn_overlay:
          description: if this is created for evpn overlay
          type: boolean
        for_overlay:
          description: if this is created for overlay
          type: boolean
        local_as:
          description: AS
          type: integer
        mac:
          description: router mac address
          type: string
        neighbor:
          type: string
        neighbor_as:
          type: integer
        neighbor_mac:
          description: if it's another device in the same org
          type: string
        node:
          description: node0/node1
          type: string
        org_id:
          description: router org ID
          type: string
        rx_pkts:
          type: integer
        rx_routes:
          description: number of received routes
          type: integer
        site_id:
          description: router site ID
          type: string
        state:
          enum:
            - idle
            - connect
            - active
            - open_sent
            - open_config
            - established
          type: string
        timestamp:
          type: number
        tx_pkts:
          type: integer
        tx_routes:
          type: integer
        up:
          type: boolean
        uptime:
          type: integer
        vrf_name:
          type: string
      title: stats_bgp
      type: object
      x-examples:
        example-1:
          for_overlay: true
          local_as: 0
          mac: string
          neighbor: string
          neighbor_as: 0
          neighbor_mac: string
          org_id: string
          rx_pkts: 0
          rx_routes: 0
          site_id: string
          state: idle
          timestamp: 0
          tx_pkts: 0
          tx_routes: 0
          up: true
          uptime: 0
          vrf_name: string
      x-stoplight:
        id: 4aivo7hi8lh77
    stats_call:
      properties:
        app:
          type: string
        audio_quality:
          type: integer
        end_time:
          type: integer
        mac:
          type: string
        meeting_id:
          type: string
        org_id:
          type: string
        rating:
          type: integer
        screen_share_quality:
          type: integer
        site_id:
          type: string
        start_time:
          type: integer
        video_quality:
          type: integer
      type: object
      x-examples:
        example-1:
          app: zoom
          audio_quality: 1
          end_time: 1665465341
          mac: adf1c481b989
          org_id: 85e1d87d-6541-4ebd-941a-272cac140948
          rating: 5
          screen_share_quality: 3
          site_id: a16fdfc0-8540-47ab-be59-9dd2d00e7c84
          start_time: 1665460836
          video_quality: 2
    stats_client:
      description: Client statistics
      minItems: 1
      properties:
        _ttl:
          description: TTL of the validity of the stat
          type: number
        accuracy:
          description: estimated clinet location accuracy, in meter
          type: integer
        airespace_ifname:
          type: string
        airwatch:
          description: information if airwatch enabled
          properties:
            authorized:
              type: boolean
          required:
            - authorized
          type: object
        ap_id:
          description: AP ID the client is connected to
          format: uuid
          type: string
        ap_mac:
          description: AP the client is connected to
          type: string
        band:
          enum:
            - "24"
            - "5"
          type: string
        channel:
          description: current channel
          type: integer
        dual_band:
          description: whether the client is dual-band capable (determined by whether we’ve seen probe requests from both bands)
          type: boolean
        family:
          description: device family, through fingerprinting. iPod / Nexus Galaxy / Windows Mobile or CE …
          type: string
        guest:
          description: information about this portal
          properties:
            authorized:
              default: false
              description: whether this guest is authorized
              type: boolean
            authorized_expiring_time:
              description: when the guest authorization will expire
              type: number
            authorized_time:
              description: when the guest is authorized
              type: number
            company:
              type: string
            email:
              type: string
            field1:
              type: string
            name:
              type: string
          required:
            - authorized
            - authorized_expiring_time
            - authorized_time
            - company
            - email
            - field1
            - name
          type: object
        hostname:
          description: hostname that we learned from sniffing DHCP
          type: string
        idle_time:
          description: how long, in seconds, has the client been idle (since the last RX packet)
          type: number
        ip:
          format: ipv4
          type: string
        ip6:
          format: ipv6
          type: string
        is_guest:
          default: false
          description: whether this is a guest
          type: boolean
        key_mgmt:
          description: e.g. WPA2-PSK/CCMP
          type: string
        last_seen:
          description: last seen timestamp
          type: number
        mac:
          description: client mac
          type: string
        manufacture:
          description: device manufacture, through fingerprinting or OUI
          type: string
        map_id:
          description: estimated client location - map_id
          format: uuid
          type: string
        model:
          description: device model, may be available if we can identify them
          type: string
        num_locating_aps:
          description: number of APs used to locate this client
          type: integer
        os:
          description: device os, through fingerprinting
          type: string
        power_saving:
          description: if it’s currently in power-save mode
          type: boolean
        proto:
          enum:
            - a
            - b
            - g
            - n
            - ac
            - ax
          type: string
        psk_id:
          description: PSK id (if multi-psk is used)
          format: uuid
          type: string
        rssi:
          description: signal strength
          type: number
        rx_bps:
          description: rate of receiving traffic from the clients, bits/seconds, last known
          type: number
        rx_bytes:
          description: amount of traffic received from client since client connects
          type: number
        rx_packets:
          description: amount of traffic received from client since client connects
          type: number
        rx_rate:
          description: RX Rate, Mbps
          type: number
        rx_retries:
          description: amount of rx retries
          type: number
        snr:
          description: signal over noise
          type: number
        ssid:
          description: SSID the client is connected to
          type: string
        tx_bps:
          description: rate of transmitting traffic to the clients, bits/seconds, last known
          type: number
        tx_bytes:
          description: amount of traffic sent to client since client connects
          type: number
        tx_packets:
          description: amount of traffic sent to client since client connects
          type: number
        tx_rate:
          description: TX Rate, Mbps
          type: number
        tx_retries:
          description: amount of tx retries
          type: number
        type:
          description: client’s type, regular / vip / resource / blocked (if client object is created)
          type: string
        uptime:
          description: how long, in seconds, has the client been connected
          type: number
        username:
          description: username that we learned from 802.1X exchange or Per-user PSK or User Portal
          type: string
        vlan_id:
          description: vlan id, could be empty (from older AP)
          type: integer
        wlan_id:
          description: WLAN ID the client is connected to
          format: uuid
          type: string
        x:
          description: estimated client location in pixels
          type: number
        x_m:
          description: estimated client location in meter
          type: number
        y:
          description: estimated client location in pixels
          type: number
        y_m:
          description: estimated client location in meter
          type: number
      required:
        - _ttl
        - ap_id
        - ap_mac
        - band
        - channel
        - dual_band
        - family
        - hostname
        - idle_time
        - ip
        - is_guest
        - key_mgmt
        - last_seen
        - mac
        - manufacture
        - model
        - os
        - power_saving
        - proto
        - rssi
        - rx_bps
        - rx_bytes
        - rx_packets
        - rx_rate
        - rx_retries
        - snr
        - ssid
        - tx_bps
        - tx_bytes
        - tx_packets
        - tx_rate
        - tx_retries
        - uptime
        - username
        - wlan_id
      type: object
      uniqueItems: true
      x-examples:
        example-1:
          - _ttl: 0
            accuracy: 0
            airespace_ifname: string
            airwatch:
              authorized: true
            ap_id: 325b588d-147b-4fa4-bb40-83383f83c77e
            ap_mac: string
            band: 24
            channel: 0
            dual_band: true
            family: string
            guest:
              authorized: false
              authorized_expiring_time: 0
              authorized_time: 0
              company: string
              email: string
              field1: string
              name: string
            hostname: string
            idle_time: 0
            ip: 192.168.0.1
            ip6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
            is_guest: false
            key_mgmt: string
            last_seen: 0
            mac: string
            manufacture: string
            map_id: 09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1
            model: string
            num_locating_aps: 0
            os: string
            power_saving: true
            proto: a
            psk_id: 4cb94c10-4e99-46b0-8261-4c71d0b2cb9d
            rssi: 0
            rx_bps: 0
            rx_bytes: 0
            rx_packets: 0
            rx_rate: 0
            rx_retries: 0
            snr: 0
            ssid: string
            tx_bps: 0
            tx_bytes: 0
            tx_packets: 0
            tx_rate: 0
            tx_retries: 0
            type: string
            uptime: 0
            username: string
            vlan_id: 0
            wlan_id: 5028e92b-fc59-4056-91d1-ea4b4ca1617a
            x: 0
            y: 0
    stats_client_detail:
      description: Client statistics
      items:
        properties:
          _ttl:
            description: TTL of the validity of the stat
            type: number
          accuracy:
            description: estimated client location accuracy, in meter
            type: integer
          airespace_ifname:
            type: string
          airwatch:
            description: information if airwatch enabled
            properties:
              authorized:
                type: boolean
            required:
              - authorized
            type: object
          ap_id:
            description: AP ID the client is connected to
            format: uuid
            type: string
          ap_mac:
            description: AP the client is connected to
            type: string
          band:
            enum:
              - "24"
              - "5"
            type: string
          channel:
            description: current channel
            type: integer
          dual_band:
            description: whether the client is dual-band capable (determined by whether we’ve seen probe requests from both bands)
            type: boolean
          family:
            description: device family, through fingerprinting. iPod / Nexus Galaxy / Windows Mobile or CE …
            type: string
          guest:
            description: information about this portal
            properties:
              authorized:
                default: false
                description: whether this guest is authorized
                type: boolean
              authorized_expiring_time:
                description: when the guest authorization will expire
                type: number
              authorized_time:
                description: when the guest is authorized
                type: number
              company:
                type: string
              email:
                type: string
              field1:
                type: string
              name:
                type: string
            required:
              - authorized
              - authorized_expiring_time
              - authorized_time
              - company
              - email
              - field1
              - name
            type: object
          hostname:
            description: hostname that we learned from sniffing DHCP
            type: string
          idle_time:
            description: how long, in seconds, has the client been idle (since the last RX packet)
            type: number
          ip:
            type: string
          is_guest:
            default: false
            description: whether this is a guest
            type: boolean
          key_mgmt:
            description: e.g. WPA2-PSK/CCMP
            type: string
          last_seen:
            description: last seen timestamp
            type: number
          mac:
            description: client mac
            type: string
          manufacture:
            description: device manufacture, through fingerprinting or OUI
            type: string
          map_id:
            description: estimated client location - map_id
            format: uuid
            type: string
          model:
            description: device model, may be available if we can identify them
            type: string
          num_locating_aps:
            description: number of APs used to locate this client
            type: integer
          os:
            description: device os, through fingerprinting
            type: string
          power_saving:
            description: if it’s currently in power-save mode
            type: boolean
          proto:
            enum:
              - a
              - b
              - g
              - n
              - ac
              - ax
            type: string
          psk_id:
            description: PSK id (if multi-psk is used)
            format: uuid
            type: string
          rssi:
            description: signal strength
            type: number
          rssizones:
            description: list of rssizone_id’s where client is in and since when (if known)
            items:
              properties:
                id:
                  format: uuid
                  type: string
                since:
                  type: integer
              type: object
            type: array
          rx_bps:
            description: rate of receiving traffic from the clients, bits/seconds, last known
            type: number
          rx_bytes:
            description: amount of traffic received from client since client connects
            type: number
          rx_packets:
            description: amount of traffic received from client since client connects
            type: number
          rx_rate:
            description: RX Rate, Mbps
            type: number
          rx_retries:
            description: amount of rx retries
            type: number
          snr:
            description: signal over noise
            type: number
          ssid:
            description: SSID the client is connected to
            type: string
          tx_bps:
            description: rate of transmitting traffic to the clients, bits/seconds, last known
            type: number
          tx_bytes:
            description: amount of traffic sent to client since client connects
            type: number
          tx_packets:
            description: amount of traffic sent to client since client connects
            type: number
          tx_rate:
            description: TX Rate, Mbps
            type: number
          tx_retries:
            description: amount of tx retries
            type: number
          type:
            description: client’s type, regular / vip / resource / blocked (if client object is created)
            type: string
          uptime:
            description: how long, in seconds, has the client been connected
            type: number
          username:
            description: username that we learned from 802.1X exchange or Per-user PSK or User Portal
            type: string
          vbeacons:
            description: list of beacon_id’s where the client is in and since when (if known)
            items:
              properties:
                id:
                  format: uuid
                  type: string
                since:
                  type: integer
              type: object
            type: array
          vlan_id:
            description: vlan id, could be empty (from older AP)
            type: integer
          wlan_id:
            description: WLAN ID the client is connected to
            format: uuid
            type: string
          wxrule_id:
            description: current WxlanRule using for a Client or an authorized Guest (portal user). null if default rule is matched.
            format: uuid
            type: string
          wxrule_usage:
            description: current WxlanRule usage per tag_id
            items:
              properties:
                tag_id:
                  format: uuid
                  type: string
                usage:
                  type: integer
              type: object
            type: array
          x:
            description: estimated clinet location in pixels
            type: number
          x_m:
            description: estimated client location in meter
            type: number
          y:
            description: estimated clinet location in pixels
            type: number
          y_m:
            description: estimated client location in meter
            type: number
          zones:
            description: list of zone_id’s where client is in and since when (if known)
            items:
              properties:
                id:
                  format: uuid
                  type: string
                since:
                  type: integer
              type: object
            type: array
        required:
          - _ttl
          - ap_id
          - ap_mac
          - band
          - channel
          - dual_band
          - family
          - hostname
          - idle_time
          - ip
          - is_guest
          - key_mgmt
          - last_seen
          - mac
          - manufacture
          - model
          - os
          - power_saving
          - proto
          - rssi
          - rx_bps
          - rx_bytes
          - rx_packets
          - rx_rate
          - rx_retries
          - snr
          - ssid
          - tx_bps
          - tx_bytes
          - tx_packets
          - tx_rate
          - tx_retries
          - uptime
          - username
          - wlan_id
        type: object
      minItems: 1
      type: array
      uniqueItems: true
      x-examples:
        example-1:
          - _ttl: 250
            airespace_ifname: ""
            airwatch:
              authorized: true
            ap_id: 0000000-0000-0000-1000-5c5b35000010
            ap_mac: 5c5b35000010
            band: "24"
            channel: 7
            dual_band: false
            family: iPhone
            guest:
              authorized: true
              authorized_expiring_time: 1429109300
              authorized_time: 1428939300
              company: ABC
              email: john@abc.com
              field1: whatever
              name: John
            hostname: David-Macbook
            id: a7d39965-9b33-3e93-1046-e4959e635e32
            idle_time: 3
            ip: 192.168.1.8
            is_guest: true
            key_mgmt: WPA2-PSK/CCMP
            last_seen: 1470417522
            mac: 5684dae9ac8b
            manufacture: Apple
            map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
            model: 6S
            name: David's Laptop
            num_locating_aps: 3
            os: OS X 10.10.2
            power_saving: true
            proto: a
            psk_id: 732daf4e-f51e-8bba-06f9-b25cd0e779ea
            rssi: -65
            rx_bps: 12
            rx_bytes: 217416
            rx_packets: 2337
            rx_rate: 65
            rx_retries: 5
            snr: 31
            ssid: corporate
            tx_bps: 6
            tx_bytes: 175132
            tx_packets: 1566
            tx_rate: 65
            tx_retries: 500
            uptime: 3568
            username: david@mist.com
            vlan_id: 1
            wlan_id: be22bba7-8e22-e1cf-5185-b880816fe2cf
            x: 53.5
            y: 173.1
    stats_client_wired:
      description: ""
      minItems: 1
      properties:
        _id:
          minLength: 1
          type: string
        _ttl:
          description: TTL of the validity of the stat
          type: number
        auth_state:
          description: client authorization status
          minLength: 1
          type: string
        device_id:
          description: Device ID the client is connected to
          minLength: 1
          type: string
        eth_port:
          description: port on AP where the wired client is connected
          minLength: 1
          type: string
        last_seen:
          description: time when last Tx/Rx observed
          type: number
        mac:
          description: client mac
          minLength: 1
          type: string
        rx_bytes:
          description: amount of traffic sent to client since client connects
          type: number
        rx_pkts:
          description: amount of traffic sent to client since client connects
          type: number
        site_id:
          minLength: 1
          type: string
        tx_bytes:
          description: "\tamount of traffic received from client since client connects"
          type: number
        tx_pkts:
          description: amount of traffic received from client since client connects
          type: number
        uptime:
          description: how long, in seconds, has the client been connected
          type: number
        vlan_id:
          description: vlan id, could be empty
          type: number
      required:
        - mac
      type: object
      uniqueItems: true
      x-examples:
        example-1:
          _id: 003ee1bec926
          _ttl: 277
          ap_id: 00000000-0000-0000-1000-d420b085fdff
          auth_state: authorizedForCompleteAccess
          eth_port: eth1
          last_seen: 1645060912.0751352
          mac: e45f01319a43
          rx_bytes: 0
          rx_pkts: 0
          site_id: 1916d52a-4a90-11e5-8b45-1258369c38a9
          tx_bytes: 0
          tx_pkts: 0
          uptime: 8723766
          vlan_id: 70
    stats_device_ap:
      description: AP statistics
      properties:
        ble_config:
          properties:
            beacon_rate:
              type: integer
            beacon_rate_model:
              type: string
            beam_disabled:
              items:
                type: integer
              type: array
            power:
              type: integer
            power_mode:
              type: string
          type: object
        ble_stat:
          properties:
            beacon_rate:
              type: integer
            eddystone_uid_enabled:
              type: boolean
            eddystone_uid_freq_msec:
              type: integer
            eddystone_uid_instance:
              type: string
            eddystone_uid_namespace:
              type: string
            eddystone_url_enabled:
              type: boolean
            eddystone_url_freq_msec:
              description: Frequency (msec) of data emmit by Eddystone-UID beacon
              type: integer
            eddystone_url_url:
              type: string
            ibeacon_enabled:
              type: boolean
            ibeacon_major:
              type: integer
            ibeacon_minor:
              type: integer
            ibeacon_uuid:
              format: uuid
              type: string
            major:
              type: integer
            minors:
              items:
                type: integer
              type: array
            power:
              type: integer
            rx_bytes:
              type: integer
            rx_pkts:
              type: integer
            tx_bytes:
              type: integer
            tx_pkts:
              type: integer
            tx_resets:
              description: resets due to tx hung
              type: integer
            uuid:
              format: uuid
              type: string
          type: object
        cert_expiry:
          type: number
        env_stat:
          description: device environment, including CPU temperature, Ambient temperature, Humidity, Attitude, Pressure, Accelerometers, Magnetometers and vCore Voltage
          properties:
            accel_x:
              type: number
            accel_y:
              type: number
            accel_z:
              type: number
            ambient_temp:
              type: integer
            attitude:
              type: integer
            cpu_temp:
              type: integer
            humidity:
              type: integer
            magne_x:
              type: number
            magne_y:
              type: number
            magne_z:
              type: number
            pressure:
              type: integer
            vcore_voltage:
              type: number
          type: object
        ext_ip:
          type: string
        fwupdate:
          properties:
            progress:
              type: integer
            status:
              type: string
            status_id:
              type: integer
            timestamp:
              type: integer
          type: object
        iot_stat:
          properties:
            DI2:
              properties:
                value:
                  type: integer
              type: object
          type: object
        ip:
          type: string
        ip_config:
          properties:
            dns:
              items:
                type: string
              type: array
            dns_suffix:
              items:
                type: string
              type: array
            gateway:
              type: string
            ip:
              type: string
            netmask:
              type: string
            type:
              type: string
          type: object
        ip_stat:
          properties:
            dns:
              items:
                type: string
              type: array
            dns_suffix:
              items:
                type: string
              type: array
            gateway:
              type: string
            gateway6:
              type: string
            ip:
              type: string
            ip6:
              type: string
            ips:
              additionalProperties:
                description: the property key is the VLAN name
                type: string
              type: object
            netmask:
              type: string
            netmask6:
              type: string
          type: object
        l2tp_stat:
          additionalProperties:
            description: the property key is the L2TP tunnel id
            properties:
              sessions:
                description: list of sessions
                items:
                  properties:
                    local_sid:
                      description: remote sessions id (dynamically unless Tunnel is said to be static)
                      type: integer
                    remote_id:
                      description: WxlanTunnel Remote ID (user-configured)
                      type: string
                    remote_sid:
                      description: remote sessions id (dynamically unless Tunnel is said to be static)
                      type: integer
                    state:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              state:
                description: idle / wait-ctrl-reply / wait-ctrl-conn / established / established_with_sessions
                type: string
              uptime:
                description: uptime
                type: integer
              wxtunnel_id:
                description: WxlanTunnel ID
                format: uuid
                type: string
            type: object
          description: l2tp tunnel status (key is the wxtunnel_id)
          type: object
        last_seen:
          description: last seen timestamp
          type: number
        last_trouble:
          properties:
            code:
              type: string
            timestamp:
              type: integer
          required:
            - code
            - timestamp
          type: object
        led:
          properties:
            brightness:
              type: integer
            enabled:
              type: boolean
          type: object
        lldp_stat:
          description: LLDP Stat (neighbor information, power negotiations)
          properties:
            chassis_id:
              type: string
            lldp_med_supported:
              description: whether it support LLDP-MED
              type: boolean
            mgmt_addr:
              description: switch’s management address (if advertised), can be IPv4, IPv6, or MAC
              type: string
            port_desc:
              description: port description, e.g. “2/20”, “Port 2 on Switch0”
              type: string
            power_allocated:
              description: in mW, provided/allocated by PSE
              type: number
            power_draw:
              description: in mW, total power needed by PD
              type: number
            power_request_count:
              description: number of negotiations, if it keeps increasing, we don’t have a stable power
              type: integer
            power_requested:
              description: in mW, the current power requested by PD
              type: number
            system_desc:
              description: description provided by switch, e.g. “HP J9729A 2920-48G-POE+ Switch”
              type: string
            system_name:
              description: name of the switch, e.g. “TC2-OWL-Stack-01”
              type: string
          type: object
        locating:
          type: boolean
        locked:
          description: whether this AP is considered locked (placement / orientation has been vetted)
          type: boolean
        mac:
          description: device mac
          type: string
        map_id:
          format: uuid
          type: string
        mesh_downlinks:
          additionalProperties:
            description: the property key is the mesh downlink id
            properties:
              band:
                type: string
              channel:
                type: integer
              idle_time:
                type: integer
              last_seen:
                type: integer
              proto:
                type: string
              rssi:
                type: integer
              rx_bps:
                type: integer
              rx_bytes:
                type: integer
              rx_packets:
                type: integer
              rx_rate:
                type: integer
              rx_retries:
                type: integer
              site_id:
                format: uuid
                type: string
              snr:
                type: integer
              tx_bps:
                type: integer
              tx_bytes:
                type: integer
              tx_packets:
                type: integer
              tx_rate:
                type: integer
              tx_retries:
                type: integer
            type: object
          type: object
        mesh_uplink:
          properties:
            band:
              type: string
            channel:
              type: integer
            idle_time:
              type: integer
            last_seen:
              type: integer
            proto:
              type: string
            rssi:
              type: integer
            rx_bps:
              type: integer
            rx_bytes:
              type: integer
            rx_packets:
              type: integer
            rx_rate:
              type: integer
            rx_retries:
              type: integer
            snr:
              type: integer
            tx_bps:
              type: integer
            tx_bytes:
              type: integer
            tx_packets:
              type: integer
            tx_rate:
              type: integer
            tx_retries:
              type: integer
            uplink_ap_id:
              format: uuid
              type: string
            uplink_site_id:
              format: uuid
              type: string
          type: object
        model:
          description: device model
          type: string
        mount:
          example: faceup
          type: string
        name:
          type: string
        num_clients:
          description: how many wireless clients are currently connected
          type: integer
        port_stat:
          additionalProperties:
            properties:
              full_duplex:
                type: boolean
              rx_bytes:
                type: number
              rx_errors:
                type: number
              rx_pkts:
                type: number
              speed:
                type: integer
              tx_bytes:
                type: number
              tx_pkts:
                type: number
              up:
                type: boolean
            type: object
          type: object
        power_budget:
          description: in mW, surplus if positie or deficit if negative
          type: number
        power_constrained:
          description: whether insufficient power
          type: boolean
        power_opmode:
          description: constrained mode
          example: "[20] 6GHz(2x2) 5GHz(4x4) 2.4GHz(2x2)."
          type: string
        power_src:
          description: DC Input / PoE 802.3at / PoE 802.3af / LLDP / ? (unknown)
          type: string
        radio_config:
          properties:
            band_24:
              properties:
                bandwidth:
                  type: number
                channel:
                  type: integer
                dynamic_chaining_enabled:
                  type: boolean
                power:
                  type: number
                rx_chain:
                  type: integer
                tx_chain:
                  type: integer
              type: object
            band_5:
              properties:
                bandwidth:
                  type: number
                channel:
                  type: integer
                dynamic_chaining_enabled:
                  type: boolean
                power:
                  type: number
                rx_chain:
                  type: integer
                tx_chain:
                  type: integer
              type: object
            band_6:
              properties:
                bandwidth:
                  type: number
                channel:
                  type: integer
                dynamic_chaining_enabled:
                  type: boolean
                power:
                  type: number
                rx_chain:
                  type: integer
                tx_chain:
                  type: integer
              type: object
            scanning_enabled:
              type: boolean
          type: object
        radio_stat:
          description: a map of radio stats, key can be band_24 / band_5
          properties:
            band_24:
              description: radio stat of 2.4G radio
              properties:
                bandwidth:
                  description: current channel bandwidth
                  enum:
                    - 20
                    - 40
                  type: integer
                channel:
                  description: current channel the radio is running on
                  type: integer
                dynamic_chaining_enalbed:
                  description: Use dynamic chaining for downlink
                  type: boolean
                mac:
                  description: radio (base) mac, it can have 16 bssids (e.g. 5c5b350001a0-5c5b350001af)
                  type: string
                num_clients:
                  description: number of clients
                  type: integer
                power:
                  description: transmit power (in dBm)
                  type: integer
                rx_bytes:
                  type: number
                rx_pkts:
                  type: number
                tx_bytes:
                  type: number
                tx_pkts:
                  type: number
                util_all:
                  description: all utilization in percentage
                  type: integer
                util_non_wifi:
                  description: reception of “No Packets” utilization in percentage, received frames with invalid PLCPs and CRS glitches as noise
                  type: integer
                util_rx_in_bss:
                  description: reception of “In BSS” utilization in percentage, only frames that are received from AP/STAs within the BSS
                  type: integer
                util_rx_other_bss:
                  description: reception of “Other BSS” utilization in percentage, all frames received from AP/STAs that are outside the BSS
                  type: integer
                util_tx:
                  description: transmission utilization in percentage
                  type: integer
                util_unknown_wifi:
                  description: reception of “No Category” utilization in percentage, all 802.11 frames that are corrupted at the receiver
                  type: integer
              type: object
            band_5:
              description: radio stat of 5G radio
              properties:
                bandwidth:
                  description: current channel bandwidth
                  enum:
                    - 20
                    - 40
                    - 80
                  type: integer
                channel:
                  description: current channel the radio is running on
                  type: integer
                dynamic_chaining_enalbed:
                  description: Use dynamic chaining for downlink
                  type: boolean
                mac:
                  description: radio (base) mac, it can have 16 bssids (e.g. 5c5b350001a0-5c5b350001af)
                  type: string
                num_clients:
                  type: number
                power:
                  description: transmit power (in dBm)
                  type: integer
                rx_bytes:
                  type: number
                rx_pkts:
                  type: number
                tx_bytes:
                  type: number
                tx_pkts:
                  type: number
                util_all:
                  description: all utilization in percentage
                  type: integer
                util_non_wifi:
                  description: reception of “No Packets” utilization in percentage, received frames with invalid PLCPs and CRS glitches as noise
                  type: integer
                util_rx_in_bss:
                  description: reception of “In BSS” utilization in percentage, only frames that are received from AP/STAs within the BSS
                  type: integer
                util_rx_other_bss:
                  description: reception of “Other BSS” utilization in percentage, all frames received from AP/STAs that are outside the BSS
                  type: integer
                util_tx:
                  description: transmission utilization in percentage
                  type: integer
                util_unknown_wifi:
                  description: reception of “No Category” utilization in percentage, all 802.11 frames that are corrupted at the receiver
                  type: integer
              type: object
            band_6:
              description: radio stat of 6G radio
              properties:
                bandwidth:
                  description: current channel bandwidth
                  enum:
                    - 20
                    - 40
                    - 80
                    - 160
                  type: integer
                channel:
                  description: current channel the radio is running on
                  type: integer
                dynamic_chaining_enalbed:
                  description: Use dynamic chaining for downlink
                  type: boolean
                mac:
                  description: radio (base) mac, it can have 16 bssids (e.g. 5c5b350001a0-5c5b350001af)
                  type: string
                num_clients:
                  type: number
                power:
                  description: transmit power (in dBm)
                  type: integer
                rx_bytes:
                  type: number
                rx_pkts:
                  type: number
                tx_bytes:
                  type: number
                tx_pkts:
                  type: number
                util_all:
                  description: all utilization in percentage
                  type: integer
                util_non_wifi:
                  description: reception of “No Packets” utilization in percentage, received frames with invalid PLCPs and CRS glitches as noise
                  type: integer
                util_rx_in_bss:
                  description: reception of “In BSS” utilization in percentage, only frames that are received from AP/STAs within the BSS
                  type: integer
                util_rx_other_bss:
                  description: reception of “Other BSS” utilization in percentage, all frames received from AP/STAs that are outside the BSS
                  type: integer
                util_tx:
                  description: transmission utilization in percentage
                  type: integer
                util_unknown_wifi:
                  description: reception of “No Category” utilization in percentage, all 802.11 frames that are corrupted at the receiver
                  type: integer
              type: object
          type: object
        rx_bps:
          type: number
        rx_bytes:
          type: integer
        rx_pkts:
          type: integer
        serial:
          description: serial
          type: string
        status:
          enum:
            - connected
            - disconnected
            - restarting
            - upgrading
          type: string
        tx_bps:
          type: number
        tx_bytes:
          type: number
        tx_pkts:
          type: number
        type:
          description: device type, ap / ble
          type: string
        uptime:
          description: how long, in seconds, has the device been up (or rebooted)
          type: number
        usb_stat:
          properties:
            channel:
              type: integer
            connected:
              type: boolean
            last_activity:
              type: integer
            type:
              type: string
            up:
              type: boolean
          type: object
        version:
          type: string
        x:
          type: number
        y:
          type: number
      required:
        - mac
        - model
      type: object
      x-examples:
        example-1:
          ble_config:
            beacon_rate: 3
            beacon_rate_model: custom
            beam_disabled:
              - 1
              - 3
              - 6
            power: 10
            power_mode: custom
          ble_stat:
            beacon_rate: 3
            eddystone_uid_enabled: false
            eddystone_uid_freq_msec: 200
            eddystone_uid_instance: 5c5b35000001
            eddystone_uid_namespace: 2818e3868dec25629ede
            eddystone_url_enabled: true
            eddystone_url_freq_msec: 100
            eddystone_url_url: https://www.abc.com
            ibeacon_enabled: true
            ibeacon_major: 13
            ibeacon_minor: 138
            ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
            major: 12345
            minors:
              - 201
              - 202
              - 203
              - 204
              - 205
              - 206
              - 207
              - 208
            power: 10
            rx_bytes: 135
            rx_pkts: 135
            tx_bytes: 5231513353
            tx_pkts: 135135135
            tx_resets: 0
            uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
          cert_expiry: 1534534392
          ext_ip: 73.92.124.103
          fwupdate:
            progress: 10
            status: inprogress
            status_id: 5
            timestamp: 1428949501
          iot_stat:
            DI2:
              value: 0
          ip: 10.2.9.159
          ip_config:
            dns:
              - 8.8.8.8
              - 4.4.4.4
            dns_suffix:
              - .mist.local
              - .mist.com
            gateway: 10.2.1.254
            ip: 10.2.1.1
            netmask: 255.255.255.0
            type: static
          ip_stat:
            dns:
              - 8.8.8.8
              - 4.4.4.4
            dns_suffix:
              - .mist.local
              - .mist.com
            gateway: 10.2.1.254
            gateway6: 2607:f8b0:4005:808::1
            ip: 10.2.1.1
            ip6: 2607:f8b0:4005:808::2004
            ips:
              vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
              vlan193: 10.73.1.31/16
              vlan3157: 10.72.11.14/24
            netmask: 255.255.255.0
            netmask6: /32
          l2tp_stat:
            7dae216d-7c98-a51b-e068-dd7d477b7216:
              sessions:
                - local_sid: 31
                  remote_id: vpn1
                  remote_sid: 13
                  state: established
              state: established_with_sessions
              uptime: 135
              wxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
          last_seen: 1470417522
          last_trouble:
            code: "03"
            timestamp: 1428949501
          led:
            brightness: 255
            enabled: true
          lldp_stat:
            chassis_id: 63:68:61:73:73:69
            lldp_med_supported: false
            mgmt_addr: 10.1.5.2
            port_desc: 2/26
            power_allocated: 15500
            power_draw: 15000
            power_request_count: 3
            power_requested: 25500
            system_desc: HP J9729A 2920-48G-POE+ Switch
            system_name: TC2-OWL-Stack-01
          locating: false
          mac: 5c5b35000010
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          mesh_downlinks:
            00000000-0000-0000-1000-5c5b356be59f:
              band: "24"
              channel: 7
              idle_time: 3
              last_seen: 1470417522
              proto: a
              rssi: -65
              rx_bps: 12
              rx_bytes: 217416
              rx_packets: 2337
              rx_rate: 65
              rx_retries: 5
              snr: 31
              tx_bps: 6
              tx_bytes: 175132
              tx_packets: 1566
              tx_rate: 65
              tx_retries: 500
          mesh_uplink:
            band: "24"
            channel: 7
            idle_time: 3
            last_seen: 1470417522
            proto: a
            rssi: -65
            rx_bps: 12
            rx_bytes: 217416
            rx_packets: 2337
            rx_rate: 65
            rx_retries: 5
            snr: 31
            tx_bps: 6
            tx_bytes: 175132
            tx_packets: 1566
            tx_rate: 65
            tx_retries: 500
            uplink_ap_id: 00000000-0000-0000-1000-5c5b35000010
          model: AP200
          name: conference room
          num_clients: 10
          port_stat:
            eth0:
              full_duplex: true
              rx_bytes: 2056
              rx_errors: 0
              rx_pkts: 670
              speed: 1000
              tx_bytes: 2056
              tx_pkts: 670
              up: true
            eth1:
              up: false
            module:
              up: false
          power_budget: -12000
          power_src: PoE 802.3af
          radio_config:
            band_24:
              bandwidth: 20
              channel: 0
              dynamic_chaining_enabled: false
              power: 0
              rx_chain: 4
              tx_chain: 4
            band_5:
              bandwidth: 40
              channel: 0
              dynamic_chaining_enabled: false
              power: 0
              rx_chain: 4
              tx_chain: 1
            band_6:
              bandwidth: 40
              channel: 0
              power: 0
              rx_chain: 4
              tx_chain: 1
            scanning_enabled: true
          radio_stat:
            band_24:
              bandwidth: 20
              channel: 6
              mac: 5c5b350004a0
              num_clients: 6
              power: 19
              rx_bytes: 8504737800
              rx_pkts: 57731964
              tx_bytes: 211166512114
              tx_pkts: 812058566
            band_5:
              bandwidth: 80
              channel: 44
              mac: 5c5b350004b0
              num_clients: 4
              power: 15
              rx_bytes: 10366616
              rx_pkts: 38603
              tx_bytes: 50877568
              tx_pkts: 145496
            band_6:
              bandwidth: 80
              channel: 44
              mac: 5c5b350004b0
              num_clients: 4
              power: 15
              rx_bytes: 10366616
              rx_pkts: 38603
              tx_bytes: 50877568
              tx_pkts: 145496
          rx_bps: 60003
          rx_bytes: 8515104416
          rx_pkts: 57770567
          serial: FXLH2015170017
          status: connected
          tx_bps: 634301
          tx_bytes: 211217389682
          tx_pkts: 812204062
          type: ap
          uptime: 13500
          usb_stat:
            channel: 3
            connected: true
            last_activity: 1586873254
            type: imagotag
            up: true
          version: 1.0.0
          x: 53.5
          y: 173.1
    stats_device_gateway:
      description: Gateway statistics
      properties:
        cluster_stat:
          additionalProperties:
            properties:
              status:
                type: string
            type: object
          type: object
        cpu2_stat:
          type: string
        cpu_stat:
          properties:
            idle:
              type: number
            interrupt:
              type: number
            load_avg:
              items:
                type: object
              type: array
            system:
              type: number
            user:
              type: number
          type: object
        hostname:
          description: hostname reported by the device
          type: string
        ip:
          description: IP address
          type: string
        ip_stat:
          properties:
            dns:
              items:
                type: object
              type: array
            dns_suffix:
              items:
                type: object
              type: array
            gateway:
              type: string
            gateway6:
              type: string
            ip:
              type: string
            ip6:
              type: string
            ips:
              properties:
                "{vlan}":
                  type: string
              type: object
            netmask:
              type: string
            netmask6:
              type: string
          type: object
        last_seen:
          description: last seen timestamp
          type: number
        mac:
          description: device mac
          type: string
        memory_stat:
          properties:
            usage:
              type: number
          required:
            - usage
          type: object
        model:
          description: device model
          type: string
        module2_stat:
          type: string
        module_stat:
          items:
            properties:
              fans:
                items:
                  properties:
                    airflow:
                      type: string
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              model:
                type: string
              poe:
                properties:
                  max_power:
                    type: number
                  power_draw:
                    type: number
                type: object
              psus:
                items:
                  properties:
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              serial:
                type: string
              temperatures:
                items:
                  properties:
                    celsius:
                      type: number
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              vc_links:
                items:
                  properties:
                    neighbor_module_idx:
                      type: integer
                    neighbor_port_id:
                      type: string
                    port_id:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              vc_role:
                type: string
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        name:
          description: device name if configured
          type: string
        serial:
          description: serial
          type: string
        spu2_stat:
          type: string
        spu_stat:
          properties:
            cpu:
              type: number
            memory:
              type: number
            sessions:
              properties:
                current:
                  type: number
                max:
                  type: number
                pending:
                  type: number
                valid:
                  type: number
              type: object
          type: object
        status:
          type: string
        type:
          type: string
        uptime:
          type: number
        version:
          type: string
      required:
        - mac
      type: object
      x-examples:
        example-1:
          cluster_stat:
            node0:
              status: ""
            node1:
              stats: ""
          cpu2_stat: ""
          cpu_stat:
            idle: 28
            interrupt: 8
            load_avg:
              - 0.9700000286102295
              - 1.0499999523162842
              - 1.0199999809265137
            system: 41
            user: 23
          hostname: sj1
          ip: 10.2.11.137
          ip_stat:
            dns:
              - 8.8.8.8
              - 4.4.4.4
            dns_suffix:
              - .mist.local
              - .mist.com
            gateway: 10.2.1.1
            gateway6: 2607:f8b0:4005:808::1
            ip: 10.2.11.137
            ip6: 2607:f8b0:4005:808::2004
            ips:
              vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
              vlan193: 10.73.1.31/16
              vlan3157: 10.72.11.14/24
            netmask: 255.255.192.0
            netmask6: /32
          last_seen: 1553203563
          mac: dc38e1dbf3cd
          memory_stat:
            usage: 35
          model: SRX320
          module2_stat: ""
          module_stat:
            - fans:
                - name: Fan 0
                  status: absent
                - airflow: out
                  name: Fan 1
                  status: ok
              model: EX4300-48P
              poe:
                max_power: 250
                power_draw: 120.3
              psus:
                - name: Power Supply 0
                  status: ok
                - name: Power Supply 1
                  status: failed
              serial: PX8716230021
              temperatures:
                - celsius: 45
                  name: CPU
                  status: ok
              vc_links:
                - neighbor_module_idx: 1
                  neighbor_port_id: vcp-255/1/0
                  port_id: vcp-255/1/0
              vc_role: master
          name: sj1
          serial: TC3714190003
          spu2_stat: ""
          spu_stat:
            cpu: 15
            memory: 32
            sessions:
              current: 41
              max: 65535
              pending: 12
              valid: 15
          status: connected
          type: gateway
          uptime: 13500
          version: 18.4R1.8
    stats_device_other:
      properties:
        last_config:
          type: integer
        last_seen:
          type: integer
        mac:
          type: string
        uptime:
          type: integer
        vendor:
          type: string
        vendor_specific:
          properties: {}
          type: object
        version:
          type: string
      type: object
      x-examples:
        Example 1:
          last_config: 1675392788
          last_seen: 1675843629
          mac: 5c5b35000018
          uptime: 20296
          vendor: cradlepoint
          vendor_specific: {}
          version: 7.22.70
    stats_device_switch:
      description: Switch statistics
      properties:
        cpu_stat:
          properties:
            idle:
              description: Percentage of CPU time that is idle
              type: integer
            interrupt:
              description: Percentage of CPU time being used by interrupts
              type: integer
            load_avg:
              description: Load averages for the last 1, 5, and 15 minutes
              items:
                type: object
              type: array
            system:
              description: Percentage of CPU time being used by system processes
              type: integer
            user:
              description: Percentage of CPU time being used by user processe
              type: integer
          type: object
        hostname:
          description: hostname reported by the device
          type: string
        if_stat:
          additionalProperties:
            properties:
              ips:
                items:
                  type: string
                type: array
              port_id:
                type: string
              rx_bytes:
                type: integer
              rx_pkts:
                type: integer
              tx_bytes:
                type: integer
              tx_pkts:
                type: integer
              up:
                type: boolean
            type: object
          description: Property key is the interface name
          type: object
        ip:
          type: string
        ip_stat:
          properties:
            dns:
              items:
                type: object
              type: array
            dns_suffix:
              items:
                type: object
              type: array
            gateway:
              type: string
            gateway6:
              type: string
            ip:
              type: string
            ip6:
              type: string
            ips:
              properties:
                vlan1:
                  type: string
                vlan193:
                  type: string
                vlan3157:
                  type: string
              type: object
            netmask:
              type: string
            netmask6:
              type: string
          type: object
        last_seen:
          type: number
        last_trouble:
          description: last trouble code of switch
          properties:
            code:
              description: |-
                Codes:
                - 102   No DHCP lease received on any interface
                - 103   No default gateway
                - 104   Gateway unreachable
                - 105   No DNS server
                - 106   DNS lookup failed
                - 108   Agent cannot connect to controller
                - 109   Authentication failed
                - 110   Underlying service (i.e. Netconf/SSH/HTTPS) is down
                - 113   DNS failure with Mist cloud
                - 114   Empty DNS response with Mist cloud
              type: string
            timestamp:
              type: integer
          type: object
        mac:
          type: string
        memory_stat:
          description: memory usage stat (for virtual chassis, memory usage of master RE)
          properties:
            usage:
              type: number
          type: object
        model:
          type: string
        module_stat:
          items:
            properties:
              fans:
                items:
                  properties:
                    airflow:
                      type: string
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              model:
                type: string
              pics:
                properties:
                  idx:
                    type: integer
                  port_groups:
                    items:
                      properties:
                        count:
                          type: integer
                        type:
                          type: string
                      type: object
                    type: array
                type: object
              poe:
                properties:
                  max_power:
                    type: number
                  power_draw:
                    type: number
                type: object
              psus:
                items:
                  properties:
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              serial:
                type: string
              temperatures:
                items:
                  properties:
                    celsius:
                      type: number
                    name:
                      type: string
                    status:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              vc_links:
                items:
                  properties:
                    neighbor_module_idx:
                      type: integer
                    neighbor_port_id:
                      type: string
                    port_id:
                      type: string
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              vc_role:
                type: string
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        name:
          description: device name if configured
          type: string
        serial:
          type: string
        status:
          type: string
        type:
          type: string
        uptime:
          type: number
        version:
          type: string
      type: object
      x-examples:
        example-1:
          cpu_stat:
            idle: 28
            interrupt: 8
            load_avg:
              - 0.9700000286102295
              - 1.0499999523162842
              - 1.0199999809265137
            system: 41
            user: 23
          hostname: sj-sw1
          ip: 10.2.11.137
          ip_stat:
            dns:
              - 8.8.8.8
              - 4.4.4.4
            dns_suffix:
              - .mist.local
              - .mist.com
            gateway: 10.2.1.1
            gateway6: 2607:f8b0:4005:808::1
            ip: 10.2.11.137
            ip6: 2607:f8b0:4005:808::2004
            ips:
              vlan1: 10.2.1.1/24,2607:f8b0:4005:808::1/32
              vlan193: 10.73.1.31/16
              vlan3157: 10.72.11.14/24
            netmask: 255.255.192.0
            netmask6: /32
          last_seen: 1553203563
          mac: dc38e1dbf3cd
          memory_stat:
            usage: 35
          model: EX4600
          module_stat:
            - fans:
                - name: Fan 0
                  status: absent
                - airflow: out
                  name: Fan 1
                  status: ok
              model: EX4300-48P
              poe:
                max_power: 250
                power_draw: 120.3
              psus:
                - name: Power Supply 0
                  status: ok
                - name: Power Supply 1
                  status: failed
              serial: PX8716230021
              temperatures:
                - celsius: 45
                  name: CPU
                  status: ok
              vc_links:
                - neighbor_module_idx: 1
                  neighbor_port_id: vcp-255/1/0
                  port_id: vcp-255/1/0
              vc_role: master
          name: xg50b
          pics:
            - idx: 0
              port_groups:
                - count: 12
                  type: sfp+
          serial: TC3714190003
          status: connected
          type: switch
          uptime: 13500
          version: 18.4R1.8
    stats_mxedge:
      description: ""
      properties:
        cpu_stat:
          description: CPU/core stats list
          properties:
            cpus:
              additionalProperties:
                properties:
                  idle:
                    type: integer
                  interrupt:
                    type: integer
                  system:
                    type: integer
                  usage:
                    type: integer
                  user:
                    type: integer
                type: object
              type: object
            idle:
              description: percentage of Idle, Idle/(Idle + Busy) since last sampling
              type: integer
            interrupt:
              description: percentage of Interrupt, (Irq + SoftIrq)/(Idle + Busy) since last sampling
              type: integer
            system:
              description: percentage of System, System/(Idle + Busy) since last sampling
              type: integer
            usage:
              description: percentage of load, Busy/(Idle + Busy) since last sampling
              type: integer
            user:
              description: percentage of User, User/(Idle + Busy) since last sampling
              type: integer
          type: object
        created_time:
          type: integer
        for_site:
          type: boolean
        id:
          format: uuid
          type: string
        ip_stat:
          description: OOBM IP stats
          properties:
            ip:
              type: string
            ips:
              additionalProperties:
                type: string
              description: Property key is the interface name. IPs for each net interface
              type: object
            macs:
              additionalProperties:
                description: MAC addresses for each net interface
                type: string
              description: Property key is the interface name. MAC for each net interface
              type: object
          type: object
        lag_stat:
          additionalProperties:
            properties:
              active_ports:
                description: list of ports active on the LAG defined by the LACP
                items:
                  type: string
                type: array
            type: object
          description: Stat for LAG (Link Aggregation Group). Property key is the LAG name
          type: object
        last_seen:
          type: integer
        mac:
          type: string
        memory_stat:
          description: Memory usage
          properties:
            active:
              description: The amount of memory, in kibibytes, that has been used more recently and is usually not reclaimed unless absolutely necessary.
              type: integer
            available:
              description: An estimate of how much memory is available for starting new applications, without swapping.
              type: integer
            buffers:
              description: The amount, in kibibytes, of temporary storage for raw disk blocks.
              type: integer
            cached:
              description: The amount of physical RAM, in kibibytes, used as cache memory.
              type: integer
            free:
              description: The amount of physical RAM, in kibibytes, left unused by the system
              type: integer
            inactive:
              description: The amount of memory, in kibibytes, that has been used less recently and is more eligible to be reclaimed for other purposes.
              type: integer
            swap_cached:
              description: The amount of memory, in kibibytes, that has once been moved into swap, then back into the main memory, but still also remains in the swapfile.
              type: integer
            swap_free:
              description: The total amount of swap free, in kibibytes.
              type: integer
            swap_total:
              description: The total amount of swap available, in kibibytes.
              type: integer
            total:
              description: Total amount of usable RAM, in kibibytes, which is physical RAM minus a number of reserved bits and the kernel binary code
              type: integer
            usage:
              type: integer
          type: object
        model:
          type: string
        modified_time:
          type: integer
        mxagent_registered:
          type: boolean
        mxcluster_id:
          format: uuid
          type: string
        name:
          description: The name of the tunnel
          type: string
        num_tunnels:
          type: integer
        org_id:
          format: uuid
          type: string
        port_stat:
          additionalProperties:
            properties:
              full_duplex:
                type: boolean
              mac:
                type: string
              rx_bytes:
                type: number
              rx_errors:
                type: integer
              rx_pkts:
                type: integer
              speed:
                type: integer
              state:
                type: string
              tx_bytes:
                type: integer
              tx_errors:
                type: integer
              tx_pkts:
                type: integer
              up:
                type: boolean
            type: object
          type: object
        sensor_stat:
          type: object
        service_stat:
          description: stat for each services
          properties:
            mxagent:
              properties:
                ext_ip:
                  description: external IP from ep-terminator’s point of view. valid only for service having its own cloud connection
                  type: string
                last_seen:
                  description: timestamp when the last stats is seen (cloud unix time, in second). valid only for service having its own stats or whole system (last among last_seen of all services)
                  type: integer
                package_state:
                  description: package/service installation state.
                  type: string
                package_version:
                  description: package/service installation state.
                  type: string
                running_state:
                  description: service running state.
                  type: string
                uptime:
                  description: service uptime.
                  type: integer
              type: object
            tunterm:
              properties:
                ext_ip:
                  description: external IP from ep-terminator’s point of view. valid only for service having its own cloud connection
                  type: string
                last_seen:
                  description: timestamp when the last stats is seen (cloud unix time, in second). valid only for service having its own stats or whole system (last among last_seen of all services)
                  type: integer
                package_state:
                  description: package/service installation state.
                  type: string
                package_version:
                  description: package/service installation state.
                  type: string
                running_state:
                  description: service running state.
                  type: string
                uptime:
                  description: service uptime.
                  type: integer
              type: object
          type: object
        services:
          items:
            type: object
          type: array
        site_id:
          format: uuid
          type: string
        status:
          type: string
        tunterm_id:
          format: uuid
          type: string
        tunterm_ip_config:
          properties:
            gateway:
              type: string
            ip:
              type: string
            netmask:
              type: string
          type: object
        tunterm_port_config:
          properties:
            downstream_ports:
              items:
                type: object
              type: array
            separate_upstream_downstream:
              type: boolean
            upstream_ports:
              items:
                type: object
              type: array
          type: object
        tunterm_registered:
          type: boolean
        tunterm_stat:
          properties:
            monitoring_failed:
              type: boolean
          type: object
        uptime:
          type: integer
        virtualization_type:
          description: Virtualization environment
          type: string
      type: object
      x-examples:
        example-1:
          cpu_stat:
            cpus:
              property1:
                idle: 0
                interrupt: 0
                system: 0
                usage: 0
                user: 0
              property2:
                idle: 0
                interrupt: 0
                system: 0
                usage: 0
                user: 0
            idle: 0
            interrupt: 0
            system: 0
            usage: 0
            user: 0
          created_time: 0
          for_site: true
          id: string
          ip_stat:
            ip: string
            ips:
              ens18: string
          lag_stat: {}
          last_seen: 0
          mac: string
          memory_stat:
            active: 0
            available: 0
            buffers: 0
            cached: 0
            free: 0
            inactive: 0
            swap_cached: 0
            swap_free: 0
            swap_total: 0
            total: 0
            usage: 0
          model: string
          modified_time: 0
          mxagent_registered: true
          mxcluster_id: string
          name: string
          num_tunnels: 0
          org_id: string
          port_stat:
            property1:
              full_duplex: true
              mac: string
              rx_bytes: 0
              rx_errors: 0
              rx_pkts: 0
              speed: 0
              state: string
              tx_bytes: 0
              tx_errors: 0
              tx_pkts: 0
              up: true
            property2:
              full_duplex: true
              mac: string
              rx_bytes: 0
              rx_errors: 0
              rx_pkts: 0
              speed: 0
              state: string
              tx_bytes: 0
              tx_errors: 0
              tx_pkts: 0
              up: true
          sensor_stat: {}
          service_stat:
            mxagent:
              ext_ip: string
              last_seen: 0
              package_state: string
              package_version: string
              running_state: string
              uptime: 0
            tunterm:
              ext_ip: string
              last_seen: 0
              package_state: string
              package_version: string
              running_state: string
              uptime: 0
          services:
            - {}
          site_id: string
          status: string
          tunterm_id: string
          tunterm_ip_config:
            gateway: string
            ip: string
            netmask: string
          tunterm_port_config:
            downstream_ports:
              - {}
            separate_upstream_downstream: true
            upstream_ports:
              - {}
          tunterm_registered: true
          tunterm_stat:
            monitoring_failed: true
          uptime: 0
          virtualization_type: string
    stats_mxtunnel:
      description: "MxTunnels statistics "
      properties:
        ap:
          readOnly: true
          type: string
        for_site:
          readOnly: true
          type: boolean
        last_seen:
          readOnly: true
          type: integer
        mxcluster_id:
          format: uuid
          readOnly: true
          type: string
        mxedge_id:
          format: uuid
          readOnly: true
          type: string
        mxtunnel_id:
          format: uuid
          readOnly: true
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        peer_mxedge_id:
          description: MxEdge ID of the peer(mist edge to mist edge tunnel)
          format: uuid
          readOnly: true
          type: string
        remote_ip:
          readOnly: true
          type: string
        remote_port:
          readOnly: true
          type: integer
        rx_control_pkts:
          readOnly: true
          type: integer
        sessions:
          description: |
            list of sessions
          items:
            properties:
              local_sid:
                description: remote sessions id (dynamically unless Tunnel is said to be static)
                type: integer
              remote_id:
                description: WxlanTunnel Remote ID
                type: string
              remote_sid:
                description: remote sessions id (dynamically unless Tunnel is said to be static)
                type: integer
              state:
                type: string
            required:
              - local_sid
              - remote_id
              - remote_sid
              - state
            type: object
          minItems: 1
          readOnly: true
          type: array
          uniqueItems: true
        site_id:
          format: uuid
          readOnly: true
          type: string
        state:
          description: idle / wait-ctrl-reply / wait-ctrl-conn / established / established_with_sessions
          enum:
            - idle
            - wait-ctrl-reply
            - wait-ctrl-conn
            - established
            - established_with_session
          readOnly: true
          type: string
        tx_control_pkts:
          readOnly: true
          type: integer
        uptime:
          readOnly: true
          type: integer
      type: object
      x-examples:
        example-1:
          ap: 5c5b35000010
          last_seen: 1547437078
          mxcluster_id: 572586b7-f97b-a22b-526c-8b97a3f609c4
          mxedge_id: 387804a7-3474-85ce-15a2-f9a9684c9c90
          mxtunnel_id: 7dae216d-7c98-a51b-e068-dd7d477b7216
          org_id: 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          remote_ip: 172.16.1.2
          remote_port: 13535
          rx_control_pkts: 7571
          sessions:
            - local_sid: 31
              remote_id: mxtunnel
              remote_sid: 13
              state: established
          site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
          state: established_with_sessions
          tx_control_pkts: 14862
          uptime: 135
    stats_org:
      description: Org statistics
      properties:
        alarmtemplate_id:
          format: uuid
          type: string
        allow_mist:
          type: boolean
        created_time:
          type: number
        id:
          format: uuid
          type: string
        modified_time:
          type: number
        msp_id:
          format: uuid
          type: string
        name:
          type: string
        num_devices:
          type: integer
        num_devices_connected:
          type: integer
        num_devices_disconnected:
          type: integer
        num_inventory:
          type: integer
        num_sites:
          type: integer
        orggroup_ids:
          items:
            format: uuid
            type: string
          type: array
        session_expiry:
          type: integer
        sle:
          items:
            properties:
              path:
                type: string
              user_minutes:
                properties:
                  ok:
                    type: number
                  total:
                    type: number
                required:
                  - total
                  - ok
                type: object
            required:
              - path
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      required:
        - orggroup_ids
        - name
        - id
        - msp_id
        - created_time
        - modified_time
        - allow_mist
        - session_expiry
        - alarmtemplate_id
        - num_sites
        - num_devices
        - num_inventory
        - num_devices_connected
        - num_devices_disconnected
        - sle
      type: object
      x-examples:
        example-1:
          alarmtemplate_id: 073a4600-xxxx-xxxx-xxxx-7dd17b048c44
          allow_mist: true
          created_time: 1565179566
          id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          modified_time: 1596096122
          msp_id: d3ea21e6-xxxx-xxxx-xxxx-754cb88b9807
          name: ORG-LAB
          num_devices: 8
          num_devices_connected: 4
          num_devices_disconnected: 4
          num_inventory: 8
          num_sites: 2
          orggroup_ids:
            - faea353c-xxxx-xxxx-xxxx-f16fcf1ca2a2
          session_expiry: 1440
          sle:
            - path: coverage
              user_minutes:
                ok: 47390
                total: 48932
            - path: Failed to Connect
              user_minutes:
                ok: 5
                total: 5
            - path: Time to Connect
              user_minutes:
                ok: 5
                total: 5
            - path: ap-availability
              user_minutes:
                ok: 7200
                total: 7200
            - path: throughput
              user_minutes:
                ok: 36881
                total: 36881
            - path: capacity
              user_minutes:
                ok: 39022
                total: 55764
    stats_sdkclient:
      description: SDK Client statistics
      properties:
        id:
          format: uuid
          type: string
        last_seen:
          description: last seen timestamp
          type: number
        map_id:
          description: map_id of the sdk client (if known), or null
          format: uuid
          nullable: true
          type: string
        name:
          description: name of the sdk client (if provided)
          type: string
        network_connection:
          description: various network connection info for the SDK client (if known, else omitted), with RSSI in dBm, and signal level as
          properties:
            mac:
              type: string
            rssi:
              type: number
            signal_level:
              type: number
            type:
              type: string
          required:
            - type
            - rssi
            - mac
            - signal_level
          type: object
        uuid:
          description: uuid of the sdk client
          format: uuid
          type: string
        x:
          description: x (in pixels) of user location on the map (if known)
          type: number
        y:
          description: y (in pixels) of user location on the map (if known)
          type: number
      required:
        - id
        - uuid
        - last_seen
        - network_connection
      type: object
      x-examples:
        example-1:
          id: de87bf9d-183f-e383-cc68-6ba43947d403
          last_seen: 1428939600
          map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
          name: John's iPhone
          network_connection:
            mac: c3-b6-e5-af-41-15
            rssi: -75
            signal_level: 3
            type: WiFi
          uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
          x: 60
          y: 80
    stats_sdkclient_details:
      description: SDK Client Details statistics
      properties:
        id:
          format: uuid
          type: string
        last_seen:
          description: last seen timestamp
          type: number
        map_id:
          description: map_id of the sdk client (if known), or null
          format: uuid
          nullable: true
          type: string
        name:
          description: name of the sdk client (if provided)
          type: string
        network_connection:
          description: various network connection info for the SDK client (if known, else omitted), with RSSI in dBm, and signal level as
          properties:
            mac:
              type: string
            rssi:
              type: number
            signal_level:
              type: number
            type:
              type: string
          required:
            - type
            - rssi
            - mac
            - signal_level
          type: object
        uuid:
          description: uuid of the sdk client
          format: uuid
          type: string
        vbeacons:
          description: list of beacon_id’s of the sdk client is in and since when (if known)
          items:
            properties:
              id:
                format: uuid
                type: string
              since:
                type: number
            required:
              - id
              - since
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        x:
          description: x (in pixels) of user location on the map (if known)
          type: number
        y:
          description: y (in pixels) of user location on the map (if known)
          type: number
        zones:
          description: list of zone_id’s of the sdk client is in and since when (if known)
          items:
            properties:
              id:
                format: uuid
                type: string
              since:
                type: number
            required:
              - id
              - since
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      required:
        - id
        - uuid
        - last_seen
      type: object
      x-examples:
        example-1:
          id: de87bf9d-183f-e383-cc68-6ba43947d403
          last_seen: 1428939600
          map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
          name: John's iPhone
          network_connection:
            mac: c3-b6-e5-af-41-15
            rssi: -75
            signal_level: 3
            type: WiFi
          uuid: ada72f8f-1643-e5c6-94db-f2a5636f1a64
          vbeacons:
            - id: d379d29d-24b4-96c5-5dd4-6f2a2dc5aaeb
              since: 1428939300
          x: 60
          y: 80
          zones:
            - id: 8ac84899-32db-6327-334c-9b6d58544cfe
              since: 1428939600
    stats_site:
      description: Site statistics
      properties:
        address:
          type: string
        alarmtemplate_id:
          format: uuid
          type: string
        country_code:
          type: string
        created_time:
          type: number
        id:
          format: uuid
          type: string
        lat:
          type: number
        latlng:
          properties:
            lat:
              type: number
            lng:
              type: number
          required:
            - lat
            - lng
          type: object
        lng:
          type: number
        modified_time:
          type: number
        msp_id:
          type: string
        name:
          type: string
        networktemplate_id:
          format: uuid
          type: string
        num_ap:
          type: integer
        num_ap_connected:
          type: integer
        num_clients:
          type: integer
        num_devices:
          type: integer
        num_devices_connected:
          type: integer
        num_gateway:
          type: integer
        num_gateway_connected:
          type: integer
        num_switch:
          type: integer
        num_switch_connected:
          type: integer
        org_id:
          format: uuid
          type: string
        rftemplate_id:
          format: uuid
          type: string
        secpolicy_id: {}
        sitegroup_ids:
          items:
            format: uuid
            type: string
          type: array
        timezone:
          type: string
        tzoffset:
          type: integer
      required:
        - address
        - alarmtemplate_id
        - country_code
        - created_time
        - id
        - lat
        - latlng
        - lng
        - modified_time
        - msp_id
        - name
        - networktemplate_id
        - num_ap
        - num_ap_connected
        - num_clients
        - num_devices
        - num_devices_connected
        - num_gateway
        - num_gateway_connected
        - num_switch
        - num_switch_connected
        - org_id
        - rftemplate_id
        - sitegroup_ids
        - timezone
        - tzoffset
      type: object
      x-examples:
        example-1:
          value:
            address: 41 Rue de Villiers, 92100 Neuilly sur Seine, France
            alarmtemplate_id: 2448aeb8-85c9-449b-a0d9-4f0043313f62
            country_code: FR
            created_time: 1594743731
            id: f5fcbee5-xxxx-xxxx-xxxx-1619ede87879
            lat: 48.890001
            latlng:
              lat: 48.890001
              lng: 2.210001
            lng: 2.210001
            modified_time: 1599721190
            msp_id: d3ea21e6-xxxx-xxxx-a689-754cb88b9807
            name: lab
            networktemplate_id: 185c4c32-b0b8-4a88-9dce-3a260b017013
            num_ap: 6
            num_ap_connected: 2
            num_clients: 22
            num_devices: 8
            num_devices_connected: 2
            num_gateway: 1
            num_gateway_connected: 0
            num_switch: 1
            num_switch_connected: 0
            org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
            rftemplate_id: b3f20330-xxxx-xxxx-xxxx-0d8727140b1d
            sitegroup_ids:
              - 3911be00-xxxx-xxxx-xxxx-ae3a2911d69e
              - d7bc0c0b-xxxx-xxxx-xxxx-8216de33c124
            timezone: Europe/Paris
            tzoffset: 60
    stats_switch_port:
      description: Switch port statistics
      properties:
        for_site:
          readOnly: true
          type: boolean
        mac:
          readOnly: true
          type: string
        neighbor_mac:
          description: chassis identifier of the chassis type listed
          readOnly: true
          type: string
        neighbor_port_desc:
          description: description supplied by the system on the interface E.g. “GigabitEthernet2/0/39”
          readOnly: true
          type: string
        neighbor_system_name:
          description: name supplied by the system on the interface E.g. neighbor system name E.g. “Kumar-Acc-SW.mist.local”
          readOnly: true
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        poe_disabled:
          description: is the POE configured not be disabled.
          readOnly: true
          type: boolean
        port_id:
          readOnly: true
          type: string
        port_mac:
          description: interface mac address
          readOnly: true
          type: string
        rx_bytes:
          description: rx bytes
          readOnly: true
          type: integer
        rx_pkts:
          description: rx packets
          readOnly: true
          type: integer
        site_id:
          format: uuid
          readOnly: true
          type: string
        speed:
          description: port speed
          readOnly: true
          type: integer
        tx_bytes:
          description: tx bytes
          readOnly: true
          type: integer
        tx_pkts:
          description: tx packets
          readOnly: true
          type: integer
        up:
          description: indicates if interface is up
          readOnly: true
          type: boolean
        xcvr_part_number:
          type: string
      required:
        - mac
        - neighbor_mac
        - org_id
        - port_id
        - port_mac
        - rx_bytes
        - rx_pkts
        - site_id
        - tx_bytes
        - tx_pkts
      type: object
      x-examples:
        example-1:
          mac: 5c4527a96580
          neighbor_mac: 64d814353400
          neighbor_port_desc: GigabitEthernet1/0/21
          neighbor_system_name: CORP-D-SW-2
          org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
          poe_disabled: true
          port_id: me0
          port_mac: 5c4527a96580
          rx_bytes: 4563443626
          rx_pkts: 30360265
          site_id: c1698122-c14c-11e5-8e81-1258369c38a9
          speed: 1000
          tx_bytes: 11299516780
          tx_pkts: 14610886
          up: true
    stats_unconnected_clients:
      description: Unconnected clients statistics
      properties:
        ap_mac:
          description: mac address of the AP that heard the client
          type: string
        last_seen:
          description: last seen timestamp
          type: number
        mac:
          description: mac address of the (unconnected) client
          type: string
        manufacture:
          description: device manufacture, through fingerprinting or OUI
          type: string
        map_id:
          description: map_id of the client (if known), or null
          format: uuid
          nullable: true
          type: string
        rssi:
          description: client RSSI observered by the AP that heard the client (in dBm)
          type: integer
        x:
          description: x (in pixels) of user location on the map (if known)
          type: integer
        y:
          description: y (in pixels) of user location on the map (if known)
          type: integer
      required:
        - mac
        - ap_mac
        - y
        - rssi
        - manufacture
        - last_seen
      type: object
      x-examples:
        example-1:
          ap_mac: 5c5b350e0410
          last_seen: 1428939600
          mac: 5684dae9ac8b
          manufacture: Apple
          map_id: ea77be98-ab51-4ff8-a863-ac3c8e1b1c3a
          rssi: -75
          x: 60
          y: 80
    stats_wantunnel:
      properties:
        auth_algo:
          description: authentication algorithm
          type: string
        encrypt_algo:
          description: encryption algorithm
          type: string
        ike_version:
          description: ike version
          type: string
        ip:
          description: ip address
          type: string
        last_event:
          description: reason of why the tunnel is down
          type: string
        mac:
          description: router mac address
          type: string
        node:
          description: node0/node1
          type: string
        org_id:
          type: string
        peer_host:
          description: peer host
          type: string
        peer_ip:
          description: peer ip address
          type: string
        protocol:
          enum:
            - ipsec
            - gre
          type: string
        rx_bytes:
          type: integer
        rx_pkts:
          type: integer
        site_id:
          type: string
        tunnel_name:
          description: Mist Tunnel Name
          type: string
        tx_bytes:
          type: integer
        tx_pkts:
          type: integer
        up:
          type: boolean
        uptime:
          description: duration from first (or last) SA was established
          type: integer
      type: object
      x-examples:
        Example 1:
          When: 2022-10-27T10:53:20.973Z
          auth_algo: hmac-md5-96
          encrypt_algo: aes-256-cbc
          ike_version: "2"
          ip: 192.168.233.0
          last_event: down reason
          mac: 020001ae9dd5
          node: node0
          org_id: 78c11da8-f984-4425-bedb-a7ddd7d0f6da
          peer_host: sunnyvale1-vpn.zscalerbeta.net
          peer_ip: 10.224.8.16
          protocol: ipsec
          rx_bytes: 150
          rx_pkts: 75
          site_id: e83e7928-eda1-4e93-82db-df3dd42ab726
          tunnel_name: Device-ipsec-1
          tx_bytes: 100
          tx_pkts: 50
          up: true
          uptime: 10
    stats_wxrule:
      description: Wxrule statistics
      properties:
        action:
          type: string
        client_mac:
          items:
            type: string
          type: array
        dst_allow_wxtags:
          items:
            type: string
          type: array
        dst_deny_wxtags:
          items:
            type: string
          type: array
        dst_wxtags:
          items:
            type: string
          type: array
        name:
          type: string
        order:
          type: integer
        src_wxtags:
          items:
            type: string
          type: array
        usage:
          type: object
      required:
        - name
        - order
        - src_wxtags
        - dst_wxtags
        - dst_allow_wxtags
        - dst_deny_wxtags
        - client_mac
        - usage
        - action
      type: object
      x-examples:
        example-1:
          action: allow
          client_mac:
            - 3bbbf819bb6f
            - bd96cbc4910f
          dst_allow_wxtags:
            - fff34466-eec0-3756-6765-381c728a6037
            - eee2c7b0-d1d0-5a30-f349-e35fa43dc3b3
          dst_deny_wxtags:
            - aaa34466-eec0-3756-6765-381c728a6037
            - bbb2c7b0-d1d0-5a30-f349-e35fa43dc3b3
          dst_wxtags:
            - d4134466-eec0-3756-6765-381c728a6037
            - 1a42c7b0-d1d0-5a30-f349-e35fa43dc3b3
          name: Guest
          order: 1
          src_wxtags:
            - 8bfc2490-d726-3587-038d-cb2e71bd2330
            - 3aa8e73f-9f46-d827-8d6a-567bb7e67fc9
          usage:
            00000000-0000-0000-0000-000000000000:
              num_flows: 30
            1a42c7b0-d1d0-5a30-f349-e35fa43dc3b3:
              num_flows: 60
            d4134466-eec0-3756-6765-381c728a6037:
              num_flows: 60
    stats_zone:
      description: Zone statistics
      properties:
        assets_waits:
          description: ble asset wait time right now
          properties:
            avg:
              description: average wait time in seconds
              type: number
            max:
              description: longest wait time in seconds
              type: number
            min:
              description: shortest wait time in seconds
              type: number
            p95:
              description: 95th percentile of all the wait time(s)
              type: number
          type: object
        clients_waits:
          description: client wait time right now
          properties:
            avg:
              description: average wait time in seconds
              type: number
            max:
              description: longest wait time in seconds
              type: number
            min:
              description: shortest wait time in seconds
              type: number
            p95:
              description: 95th percentile of all the wait time(s)
              type: number
          type: object
        created_time:
          type: integer
        id:
          description: id of the zone
          format: uuid
          type: string
        map_id:
          description: map_id of the zone
          format: uuid
          type: string
        modified_time:
          type: integer
        name:
          description: name of the zone
          type: string
        num_assets:
          description: number of assets
          type: integer
        num_clients:
          description: number of wifi clients (unconnected + connected)
          type: integer
        num_sdkclients:
          description: number of sdk clients
          type: integer
        occupancy_limit:
          type: integer
        org_id:
          type: string
        sdkclients_waits:
          description: sdkclient wait time right now
          properties:
            avg:
              description: average wait time in seconds
              type: number
            max:
              description: longest wait time in seconds
              type: number
            min:
              description: shortest wait time in seconds
              type: number
            p95:
              description: 95th percentile of all the wait time(s)
              type: number
          type: object
        site_id:
          type: string
      required:
        - id
        - map_id
        - name
      type: object
      x-examples:
        example-1:
          assets_waits:
            avg: 0
            max: 0
            min: 0
            p95: 0
          clients_waits:
            avg: 1200
            max: 3610
            min: 600
            p95: 2800
          id: 8ac84899-32db-6327-334c-9b6d58544cfe
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          name: Board Room
          num_assets: 0
          num_clients: 80
          num_sdkclients: 10
          sdkclients_waits:
            avg: 1200
            max: 3610
            min: 600
            p95: 2800
    stats_zone_details:
      description: Zone details statistics
      properties:
        assets:
          description: list of ble assets currently in the zone and when they entered
          items:
            type: string
          type: array
        client_waits:
          description: client wait time right now
          properties:
            avg:
              description: average wait time in seconds
              type: integer
            max:
              description: longest wait time in seconds
              type: integer
            min:
              description: shortest wait time in seconds
              type: integer
            p95:
              description: 95th percentile of all the wait time(s)
              type: integer
          required:
            - max
            - min
            - avg
            - p95
          type: object
        clients:
          description: list of clients currently in the zone and when they entered
          items:
            type: string
          type: array
        id:
          description: id of the zone
          format: uuid
          type: string
        map_id:
          description: map_id of the zone
          format: uuid
          type: string
        name:
          description: name of the zone
          type: string
        num_clients:
          type: integer
        num_sdkclients:
          description: sdkclient wait time right now
          type: integer
        sdkclients:
          description: list of sdkclients currently in the zone and when they entered
          items:
            type: string
          type: array
      required:
        - id
        - name
        - map_id
        - num_sdkclients
        - num_clients
        - client_waits
      type: object
      x-examples:
        example-1:
          client_waits:
            avg: 1200
            max: 3610
            min: 600
            p95: 2800
          clients:
            - 5684dae9ac8b
          id: 8ac84899-32db-6327-334c-9b6d58544cfe
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          name: Board Room
          num_clients: 80
          num_sdkclients: 0
          sdkclients:
            - 7e2b463d-c91c-ff7d-f3c0-6eccc6949ff8
    tacacs:
      properties:
        acct_servers:
          items:
            properties:
              host:
                type: string
              port:
                type: integer
              secret:
                type: string
              timeout:
                default: 10
                maximum: 90
                minimum: 1
                type: integer
            type: object
          type: array
        enabled:
          type: boolean
        network:
          description: which network the TACACS server resides
          type: string
        tacplus_servers:
          items:
            properties:
              host:
                type: string
              port:
                type: integer
              secret:
                type: string
              timeout:
                default: 10
                maximum: 90
                minimum: 1
                type: integer
            type: object
          type: array
      type: object
      x-examples:
        Example 1:
          acct_servers:
            - host: 1.2.3.4
              port: 49
              secret: testing123
            - host: tacacs.internal
              port: 49
              secret: testing123
              timeout: 10
          enabled: true
          network: default
          tacplus_servers:
            - host: 1.2.3.4
              port: 49
              secret: testing123
            - host: tacacs.internal
              port: 49
              secret: testing123
              timeout: 10
    template:
      description: Template
      properties:
        applies:
          description: where this template should be applied to, can be org_id, site_ids, sitegroup_ids
          properties:
            org_id:
              description: org id, should be the same as the org, this shadows sitegroup_ids and site_ids
              format: uuid
              type: string
            site_ids:
              description: list of site ids
              items:
                format: uuid
                type: string
              type: array
            sitegroup_ids:
              description: list of sitegroup ids
              items:
                format: uuid
                type: string
              type: array
          type: object
        created_time:
          readOnly: true
          type: number
        deviceprofile_ids:
          description: list of Device Profile ids
          items:
            format: uuid
            type: string
          type: array
        exceptions:
          description: where this template should not be applied to (takes precedence)
          properties:
            site_ids:
              description: list of site ids
              items:
                format: uuid
                type: string
              type: array
            sitegroup_ids:
              description: list of sitegroup ids
              items:
                format: uuid
                type: string
              type: array
          type: object
        filter_by_deviceprofile:
          description: whether to further filter by Device Profile
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
      required:
        - name
      type: object
      x-examples:
        example-1:
          applies:
            org_id: 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
            site_ids:
              - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            sitegroup_ids:
              - 581328b6-e382-f54e-c9dc-999983183a34
              - f57096b9-0c2f-4df6-c77b-ae6ae87a3d43
          deviceprofile_ids:
            - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          exceptions:
            site_ids:
              - 52f4347e-3e4b-186c-21ca-ad5b70eb23d6
            sitegroup_ids:
              - 90badd2e-c028-5e8e-dd8f-b3c718882b9d
          filter_by_deviceprofile: true
          name: west
    template_gateway.matching:
      description: Gateway matching
      properties:
        enable:
          type: boolean
        rules:
          items:
            additionalProperties:
              description: "property key define the type of matchine. e.g: `match_name[0:3]`, `match_model[0-6]` or   `match_role`"
              type: string
            properties:
              additional_config_cmds:
                items:
                  type: string
                type: array
              name:
                type: string
              port_config:
                additionalProperties:
                  $ref: "#/components/schemas/junos_port_config"
                type: object
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          enable: true
          rules:
            - additional_config_cmds:
                - set snmp community public
              match_model: EX4300
              "match_name[0:3]": abc
              name: match by name
              port_config:
                "*":
                  usage: default
                ge-0/0/0:
                  usage: uplink
                "ge-0/0/8-16,ge-1/0/0-47":
                  usage: ap
            - additional_config_cmds:
                - set snmp community public2
              match_role: access
              name: match by role
              port_config:
                ge-0/0/0:
                  usage: uplink
    template_switch.matching:
      description: Switch template
      properties:
        enable:
          type: boolean
        rules:
          items:
            additionalProperties:
              description: "property key define the type of matching, value is the string to match. e.g: `match_name[0:3]`, `match_name[2:6]`, `match_model`,  `match_model[0-6]`"
              type: string
            properties:
              additional_config_cmds:
                items:
                  type: string
                type: array
              match_role:
                description: role to match
                type: string
              name:
                type: string
              port_config:
                additionalProperties:
                  $ref: "#/components/schemas/junos_port_config"
                type: object
              switch_mgmt:
                properties:
                  ap_affinity_threshold:
                    example: "10"
                    type: string
                  config_revert_timer:
                    default: 10
                    type: integer
                  dhcp_option_fqdn:
                    default: false
                    description: Enable to provide the FQDN with DHCP option 81
                    type: boolean
                  mxedge_proxy_host:
                    type: string
                  mxedge_proxy_port:
                    default: 2222
                    type: integer
                  use_mxedge_proxy:
                    default: false
                    type: boolean
                type: object
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          enable: true
          rules:
            - additional_config_cmds:
                - set snmp community public
              match_model: EX4300
              "match_name[0:3]": abc
              name: match by name
              port_config:
                "*":
                  usage: default
                ge-0/0/0:
                  usage: uplink
                "ge-0/0/8-16,ge-1/0/0-47":
                  usage: ap
            - additional_config_cmds:
                - set snmp community public2
              match_role: access
              name: match by role
              port_config:
                ge-0/0/0:
                  usage: uplink
    ticket:
      description: Support Ticket
      properties:
        case_number:
          readOnly: true
          type: string
        comments:
          items:
            properties:
              attachments:
                items:
                  properties:
                    content_type:
                      type: string
                    content_url:
                      type: string
                    size:
                      type: integer
                  type: object
                type: array
              author:
                type: string
              comment:
                type: string
              created_at:
                type: integer
            required:
              - author
              - comment
              - created_at
            type: object
          type: array
        created_at:
          readOnly: true
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        requester:
          readOnly: true
          type: string
        requester_email:
          description: email of the requester
          format: email
          type: string
        status:
          description: |-
            Status open: ticket is open, Mist is working on it 
            * pending: ticket is open and Requester attention is needed (e.g. Mist is asking for some more information) 
            * solved: ticket is marked as solved / considered by Mist (requester can update it, causing it to re-open; or rate it) 
            * closed: ticket is archived and cannot be changed
          enum:
            - open
            - pending
            - solved
            - closed
          type: string
        subject:
          type: string
        type:
          description: question (default) / bug / critical
          type: string
        updated_at:
          readOnly: true
          type: integer
      required:
        - subject
        - type
      type: object
    vbeacon:
      description: vBeacon
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        major:
          description: bluetooth tag major
          type: integer
        map_id:
          description: map where the device belongs to
          format: uuid
          type: string
        message:
          description: a message that can be displayed when the sdkclient gets near the vbeacon
          type: string
        minor:
          description: bluetooth tag minor
          type: integer
        modified_time:
          readOnly: true
          type: number
        name:
          description: name / label of the device
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        power:
          default: 4
          description: required if `power_mode`==`custom`, -30 - 100, in dBm. For default power_mode, power = 4 dBm.
          maximum: 100
          minimum: -30
          type: integer
        power_mode:
          default: default
          description: default / custom
          enum:
            - default
            - custom
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        url:
          description: URL to show, optional
          type: string
        uuid:
          description: bluetooth tag UUID
          format: uuid
          type: string
        wayfinding_nodename:
          description: the name to be used in wayfinding_path or wayfinding_grid blob
          type: string
        x:
          description: x in pixel
          type: number
        y:
          description: y in pixel
          type: number
      type: object
      x-examples:
        example-1:
          created_time: 1594743745
          id: 2912c80f-xxxx-xxxx-xxxx-878714831887
          major: 2
          map_id: 5a8b84e6-xxxx-xxxx-xxxx-fce4c3998516
          message: gfdg
          minor: 1
          modified_time: 1594743745
          name: juniper
          org_id: 203d3d02-xxxx-xxxx-xxxx-76896a3330f4
          power: -4
          power_mode: custom
          site_id: f5fcbee5-xxxx-xxxx-xxxx-1619ede87879
          url: https://juniper.net
          uuid: 00000000-0000-1000-8000-000000000000
          x: 583
          x_m: 8.32265100962277
          y: 580
          y_m: 8.279824332043237
    vpn:
      description: ""
      properties:
        created_time:
          type: integer
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: integer
        name:
          minLength: 1
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        paths:
          additionalProperties:
            properties:
              bfd_profile:
                default: broadband
                enum:
                  - broadband
                  - lte
                minLength: 1
                type: string
              ip:
                description: if different from the wan port
                minLength: 1
                type: string
            type: object
          type: object
      required:
        - name
        - paths
      type: object
      x-examples:
        example-1:
          created_time: 0
          id: 497f6eca-6276-5020-bfeb-53cbbbba6f08
          modified_time: 0
          name: string
          org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
          paths:
            property1:
              bfd_profile: broadband
              ip: string
            property2:
              bfd_profile: broadband
              ip: string
    webhook:
      properties:
        created_time:
          readOnly: true
          type: number
        enabled:
          default: true
          description: whether webhook is enabled
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        headers:
          description: "custom headers : the headers name and value must be string, total bytes of headers name and value must be less than 1000"
          nullable: true
          type: object
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: name of the webhook
          nullable: true
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        secret:
          description: |-
            only if `type`=`http-post`
            when `secret` is provided, two HTTP headers will be added:
              * X-Mist-Signature-v2: HMAC_SHA256(secret, body)
              * X-Mist-Signature: HMAC_SHA1(secret, body)
          nullable: true
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        splunk_token:
          description: splunk token (If splunk_token is not defined for a type Splunk webhook, it will not send, regardless if the webhook receiver is configured to accept it.)
          nullable: true
          type: string
        topics:
          default: []
          description: N.B. For org webhooks, only device-events/alarms/audits/client-join/client-sessions/nac-sessions topics are supported.
          items:
            enum:
              - alarms
              - asset-raw
              - asset-raw-rssi
              - audits
              - client-join
              - client-sessions
              - device-events
              - device-updowns
              - discovered-raw-rssi
              - location
              - mxedge-events
              - nac-sessions
              - occupancy-alerts
              - rssizone
              - sdkclient-scan-data
              - vbeacon
              - wifi-conn-raw
              - wifi-unconn-raw
              - zone
            type: string
          type: array
        type:
          description: http-post (default) / splunk / google-pubsub / aws-sns
          enum:
            - http-post
            - splunk
          nullable: true
          type: string
        url:
          nullable: true
          type: string
        verify_cert:
          default: false
          description: when url uses HTTPS, whether to verify the certificate
          type: boolean
      type: object
      x-examples:
        example-http_post:
          enabled: true
          headers:
            x-custom-1: your_custom_header_value1
            x-custom-2: your_custom_header_value2
          name: analytic
          secret: secret
          topics:
            - location
            - zone
            - vbeacon
            - rssizone
            - asset-raw
            - device-events
            - alarms
            - audits
            - client-join
            - client-sessions
            - device-updowns
            - occupancy-alerts
            - mxedge-events
            - calea-clients
          type: http-post
          url: https://username:password@hooks.abc.com/uri/...
        example-splunk:
          enabled: true
          name: analytic
          splunk_token: token
          topics:
            - location
            - zone
            - vbeacon
            - rssizone
            - asset-raw
            - device-events
            - alarms
            - audits
            - client-join
            - client-sessions
            - device-updowns
            - occupancy-alerts
            - mxedge-events
            - calea-clients
          type: splunk
          url: https://my.splunk.host:8088/services/collector
          verify_cert: false
    webhook_alarms:
      description: |-
        **N.B.**: Fields like `aps`, `bssids`, `ssids` are event specific. They are relevant to this event type ( rogue-ap-detected). For a different event type, different fields may be sent. These don’t contain all affected entities and are representative samples of entities (capped at 10). For marvis action related events, we expose `details` to include more event specific details.

        Events specific fields for other alarm event type can be found with API https://api.mist.com/api/v1/const/alarm_defs, under “fields” array of /alarm_defs response object.
      properties:
        events:
          description: list of events
          items:
            properties:
              aps:
                items:
                  type: string
                readOnly: true
                type: array
              bssids:
                items:
                  type: string
                readOnly: true
                type: array
              count:
                description: If present, represents number of events of given type occurred in current interval, default=1
                readOnly: true
                type: integer
              event_id:
                description: event id
                format: uuid
                readOnly: true
                type: string
              for_site:
                readOnly: true
                type: boolean
              id:
                format: uuid
                readOnly: true
                type: string
              last_seen:
                readOnly: true
                type: number
              org_id:
                description: org id
                format: uuid
                readOnly: true
                type: string
              site_id:
                description: site id
                format: uuid
                readOnly: true
                type: string
              ssids:
                items:
                  type: string
                readOnly: true
                type: array
              timestamp:
                readOnly: true
                type: integer
              type:
                description: event type
                readOnly: true
                type: string
              update:
                description: If presents, represents that this is an update to event with given id sent earlier. default=false
                readOnly: true
                type: boolean
            required:
              - id
              - last_seen
              - org_id
              - site_id
              - timestamp
              - type
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: alarms
          description: topic subscribed to
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          value:
            events:
              - aps:
                  - string
                bssids:
                  - string
                count: 0
                event_id: a7a26ff2-e851-45b6-9634-d595f45458b7
                for_site: true
                id: 432f6eca-6276-4993-bfeb-53cb3bba6f08
                last_seen: 0
                org_id: a40f5d1f-d889-42e9-94ea-b9b33585fc6b
                site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
                ssids:
                  - string
                timestamp: 0
                type: string
                update: true
            topic: alarms
      x-stoplight:
        id: 8bf41abeb79f8
    webhook_asset_raw:
      description: asset raw webhook
      properties:
        events:
          description: list of events
          items:
            properties:
              asset_id:
                description: asset id
                format: uuid
                type: string
              beam:
                description: antenna index, from 1-8, clock-wise starting from the LED
                type: integer
              device_id:
                description: device where the asset reading is from
                format: uuid
                type: string
              ibeacon_major:
                description: iBeacon major
                type: integer
              ibeacon_minor:
                description: iBeacon minor
                type: integer
              ibeacon_uuid:
                description: iBeacon UUID
                format: uuid
                type: string
              mac:
                description: MAC of the beacon
                type: string
              map_id:
                description: map id
                format: uuid
                type: string
              mfg_company_id:
                description: optional, BLE manufacturing company ID
                type: number
              mfg_data:
                description: "optional, BLE manufacturing data in hex byte-string format (ie: “112233AABBCC”)"
                type: string
              rssi:
                description: signal strength
                type: number
              service_data_data:
                description: optional, data from service data
                type: string
              service_data_last_rx_time:
                description: optional, last data transmit time from service data
                type: integer
              service_data_rx_cnt:
                description: optional, data transmit count from service data
                type: integer
              service_data_uuid:
                description: optional, UUID from service data
                format: uuid
                type: string
              service_packets:
                description: list of service data packets heard from the asset/ beacon
                items:
                  properties:
                    service_data:
                      description: ata from service data
                      type: string
                    service_uuid:
                      description: UUID from service data
                      type: string
                  type: object
                type: array
              site_id:
                description: site id
                format: uuid
                type: string
              timestamp:
                type: number
            required:
              - asset_id
              - beam
              - device_id
              - mac
              - map_id
              - mfg_company_id
              - mfg_data
              - rssi
              - site_id
              - timestamp
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: asset-raw
          description: topic subscribed to
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - asset_id: a8ec4d8a-4da6-4ead-a486-d0f72e40dd08
              beam: 5
              device_id: 00000000-0000-0000-1000-5c5b35000001
              ibeacon_major: 13
              ibeacon_minor: 138
              ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
              mac: 7fc2936fd243
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              mfg_company_id: 935
              mfg_data: 648520a1020000
              rssi: -71
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
          topic: asset-raw
      x-stoplight:
        id: 9e7641ef7c64a
    webhook_audits:
      description: audit webhook
      properties:
        events:
          items:
            properties:
              admin_name:
                type: string
              device_id:
                format: uuid
                type: string
              id:
                format: uuid
                type: string
              message:
                type: string
              org_id:
                format: uuid
                type: string
              site_id:
                format: uuid
                type: string
              src_ip:
                type: string
              timestamp:
                type: number
            required:
              - admin_name
              - device_id
              - id
              - message
              - org_id
              - site_id
              - src_ip
              - timestamp
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: audits
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - admin_name: Chris Dao chris.dao@yahoo.com
              device_id: 00000000-0000-0000-1000-5c5b350e01c7
              id: 8e00dd48-b918-4d9b-b40d-b98989ac76a7
              message: Update Device "Reception"
              org_id: 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              src_ip: 73.92.124.103
              timestamp: 1549047906.201053
          topic: audits
      x-stoplight:
        id: c8616f7028337
    webhook_client_join:
      description: client join webhook
      properties:
        events:
          items:
            properties:
              ap:
                description: mac address of the AP the client connected to
                type: string
              ap_name:
                description: user-friendly name of the AP the client connected to.
                type: string
              band:
                description: 5GHz or 2.4GHz band
                type: string
              bssid:
                type: string
              connect:
                description: time when the user connects
                type: integer
              connect_float:
                description: floating point connect timestamp with millisecond precision
                type: number
              mac:
                description: the client’s mac
                type: string
              org_id:
                format: uuid
                type: string
              rssi:
                description: RSSI when the client associated
                type: number
              site_id:
                format: uuid
                type: string
              site_name:
                type: string
              ssid:
                description: ESSID
                type: string
              timestamp:
                type: number
              version:
                description: schema version of this message
                type: number
              wlan_id:
                format: uuid
                type: string
            required:
              - ap
              - ap_name
              - band
              - bssid
              - connect
              - connect_float
              - mac
              - org_id
              - rssi
              - site_id
              - site_name
              - ssid
              - timestamp
              - version
              - wlan_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: client-join
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - ap: 5c5b35d01338
              ap_name: AP43 Test
              band: "5"
              bssid: 5c5b35df18a1
              connect: 1592333828
              connect_float: 1592333828.324
              mac: 70ef0071535f
              org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
              rssi: -54
              site_id: d761985e-49b1-4506-88e9-e0368a05c301
              site_name: Test
              ssid: Maui
              timestamp: 1592333828
              version: 2
              wlan_id: 6c0c0b07-0d77-44d1-9ab2-610aee9ce711
          topic: client-join
      x-stoplight:
        id: adf9376c9c6ff
    webhook_client_sessions:
      description: client session webhook
      properties:
        events:
          items:
            properties:
              ap:
                description: mac address of the AP the client roamed or disconnected from
                type: string
              ap_name:
                description: user-friendly name of the AP the client roamed or disconnected from.
                type: string
              band:
                description: 5GHz or 2.4GHz band
                type: string
              bssid:
                type: string
              client_family:
                description: device family E.g. “Mac”, “iPhone”, “Apple watch”
                type: string
              client_manufacture:
                description: device manufacturer E.g. “Apple”
                type: string
              client_model:
                description: device model E.g. “8+”, “XS”
                type: string
              client_os:
                description: device operating system E.g. “Mojave”, “Windows 10”, “Linux”
                type: string
              connect:
                description: time when the user connects
                type: integer
              connect_float:
                description: floating point connect timestamp with millisecond precision
                type: number
              disconnect:
                description: time when the user disconnects
                type: integer
              disconnect_float:
                description: floating point disconnect timestamp with millisecond precision
                type: number
              duration:
                description: the duration of the roamed or complete session indicated by termination_reason field.
                type: integer
              mac:
                description: the client’s mac
                type: string
              next_ap:
                description: the AP the client has roamed to.
                type: string
              org_id:
                format: uuid
                type: string
              rssi:
                description: latest average RSSI before the user disconnects
                type: number
              site_id:
                format: uuid
                type: string
              site_name:
                type: string
              ssid:
                type: string
              termination_reason:
                description: 1 disassociate - when the client disassociates. 2 inactive - when the client is timeout. 3 roamed - when the client is roamed between APs
                type: integer
              timestamp:
                type: number
              version:
                description: schema version of this message
                type: number
              wlan_id:
                format: uuid
                type: string
            required:
              - ap
              - ap_name
              - band
              - bssid
              - client_family
              - client_manufacture
              - client_model
              - client_os
              - connect
              - connect_float
              - disconnect
              - disconnect_float
              - duration
              - mac
              - next_ap
              - org_id
              - rssi
              - site_id
              - site_name
              - ssid
              - termination_reason
              - timestamp
              - version
              - wlan_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: client-sessions
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - ap: 5c5b352f587e
              ap_name: AP41 Test
              band: "5"
              bssid: 5c5b352b51b4
              client_family: iPhone
              client_manufacture: Apple
              client_model: 8+
              client_os: 13.4.1
              connect: 1592333548
              connect_float: 1592333548.117
              disconnect: 1592333828
              disconnect_float: 1592333828.589
              duration: 279.835049793
              mac: 70ef0071535f
              next_ap: 5c5b35d01338
              org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
              rssi: -87
              site_id: d761985e-49b1-4506-88e9-e0368a05c301
              site_name: Test
              ssid: Maui
              termination_reason: 3
              timestamp: 1592333828
              version: 2
              wlan_id: 6c0c0b07-0d77-44d1-9ab2-610aee9ce711
          topic: client-sessions
      x-stoplight:
        id: d5d78718f958f
    webhook_device_events:
      description: device event  webhook
      properties:
        events:
          description: list of events
          items:
            properties:
              ap:
                description: (will be deprecated soon; please use mac instead) ap mac
                type: string
              ap_name:
                description: (will be deprecated soon; please use device_name instead) ap name
                type: string
              audit_id:
                description: (optional) audit id
                format: uuid
                type: string
              device_name:
                description: device name
                type: string
              device_type:
                description: device type (ap/switch/gateway)
                enum:
                  - ap
                  - switch
                  - gateway
                type: string
              ev_type:
                description: (optional) event advisory (notice/warn)
                enum:
                  - notice
                  - warn
                type: string
              mac:
                description: device mac
                type: string
              org_id:
                description: org id
                format: uuid
                type: string
              reason:
                description: (optional) event reason
                type: string
              site_id:
                description: site id
                format: uuid
                type: string
              site_name:
                description: site name
                type: string
              text:
                description: (optional) event description
                type: string
              timestamp:
                description: time the event occurred e.g. 1565987313
                type: integer
              type:
                description: event type
                type: string
            required:
              - device_name
              - device_type
              - ev_type
              - mac
              - org_id
              - timestamp
              - type
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: device-events
          description: topic subscribed to
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - ap: 5c5b35000001
              ap_name: AP41 Near Lab
              audit_id: a8ec4d8a-4da6-4ead-a486-d0f72e40dd08
              device_name: AP41 Near Lab
              device_type: ap/switch/gateway
              ev_type: NOTICE
              mac: 5c5b35000001
              org_id: 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              reason: power_cycle
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              site_name: Site 1
              text: event details
              timestamp: 1461220784
              type: AP_RESTARTED
          topic: device-events
      x-stoplight:
        id: 8eef709bf0a1e
    webhook_device_updowns:
      description: device up/down webhook
      properties:
        events:
          items:
            properties:
              ap:
                readOnly: true
                type: string
              ap_name:
                readOnly: true
                type: string
              for_site:
                readOnly: true
                type: boolean
              org_id:
                format: uuid
                readOnly: true
                type: string
              site_id:
                format: uuid
                readOnly: true
                type: string
              site_name:
                readOnly: true
                type: string
              timestamp:
                type: number
              type:
                readOnly: true
                type: string
            required:
              - ap
              - ap_name
              - org_id
              - site_id
              - site_name
              - timestamp
              - type
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: device-updowns
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - ap: 5c5b35000001
              ap_name: AP01
              org_id: 2b069b358-4c97-5319-1f8c-7c5ca64d6ab1
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              site_name: SJ1
              timestamp: 1461220784
              type: AP_RESTARTED
          topic: device-updowns
      x-stoplight:
        id: d9bcea34184a3
    webhook_discovered_raw_rssi:
      properties:
        events:
          items:
            properties:
              ap_loc:
                description: coordinates (if any) of reporting AP (updated once in 60s per client)
                items:
                  type: number
                type: array
              beam:
                description: antenna index, from 1-8, clock-wise starting from the LED
                type: integer
              device_id:
                description: device id of the reporting AP
                format: uuid
                type: string
              ibeacon_major:
                type: integer
              ibeacon_minor:
                type: integer
              ibeacon_uuid:
                format: uuid
                type: string
              is_asset:
                type: boolean
              mac:
                description: MAC of the asset/ beacon
                type: string
              map_id:
                format: uuid
                type: string
              mfg_company_id:
                description: BLE manufacturing company ID
                type: string
              mfg_data:
                description: "BLE manufacturing data in hex byte-string format (ie: “112233AABBCC”)"
                type: string
              org_id:
                format: uuid
                type: string
              rssi:
                description: signal strength
                type: number
              service_packets:
                items:
                  properties:
                    service_data:
                      type: string
                    service_uuid:
                      format: uuid
                      type: string
                  type: object
                type: array
              site_id:
                format: uuid
                type: string
              timestamp:
                type: integer
            required:
              - beam
              - device_id
              - mac
              - map_id
              - org_id
              - rssi
              - site_id
            type: object
          type: array
        topic:
          type: string
      required:
        - topic
      type: object
      x-examples:
        Example 1:
          events:
            - beam: 8
              device_id: 00000000-0000-0000-1000-ac2316eca70b
              ibeacon_major: 2
              ibeacon_minor: 2121
              ibeacon_uuid: ac950d7b-af31-42d2-be7c-e15639fab2cd
              is_asset: false
              mac: ed2cc53f2770
              map_id: bd42f0c3-2e6a-4f8a-ac2d-d34e268c1418
              org_id: 9c3e516c-397d-11e6-ae35-0242ac110008
              rssi: -79
              site_id: 27ea2f07-6fe6-4eab-be1b-b8e3ce083d67
              timestamp: 1661300746
            - ap_loc:
                - 36.03303862386182
                - 43.57022468463291
                - 2.75
              beam: 7
              device_id: 00000000-0000-0000-1000-ac2316eca70b
              is_asset: false
              mac: ed2cc53f2771
              map_id: bd42f0c3-2e6a-4f8a-ac2d-d34e268c1418
              org_id: 9c3e516c-397d-11e6-ae35-0242ac110008
              rssi: -74
              service_packets:
                - service_data: 010441060606fe3d35700601cecbd902512f000001
                  service_uuid: UUID
              site_id: 27ea2f07-6fe6-4eab-be1b-b8e3ce083d67
              timestamp: 1661300746
          topic: discovered-raw-rssi
      x-stoplight:
        id: 5e62ab1fa7fb7
    webhook_location:
      description: location  webhook
      properties:
        events:
          description: list of events
          items:
            properties:
              battery_voltage:
                type: integer
              eddystone_uid_instance:
                type: string
              eddystone_uid_namespace:
                type: string
              eddystone_url_url:
                type: string
              ibeacon_major:
                type: integer
              ibeacon_minor:
                type: integer
              ibeacon_uuid:
                format: uuid
                type: string
              id:
                description: unique id of the client (a client would have different id for different org)
                format: uuid
                type: string
              mac:
                type: string
              map_id:
                description: map id
                format: uuid
                type: string
              mfg_company_id:
                description: optional, BLE manufacturing company ID
                type: integer
              mfg_data:
                description: optional, BLE manufacturing data in hex byte-string format (ie "112233AABBCC")
                type: string
              name:
                description: name of the client, may be empty
                type: string
              site_id:
                format: uuid
                type: string
              timestamp:
                description: timestamp of the event, epoch
                type: integer
              type:
                type: string
              wifi_beacon_extended_info:
                description: optional, list of extended beacon info packets heard from the client, frame and sequence control included with the payload
                items:
                  properties:
                    frame_ctrl:
                      description: frame control field of 802.11 header
                      type: integer
                    payload:
                      description: Extended Info Payload associated with frame
                      type: string
                    seq_ctrl:
                      description: sequence control field of 802.11 header
                      type: integer
                  type: object
                type: array
              x:
                description: x, in meter
                type: integer
              y:
                description: y, in meter
                type: integer
            required:
              - id
              - map_id
              - site_id
              - timestamp
              - type
              - x
              - y
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: location
          description: topic subscribed to
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-asset:
          events:
            - battery_voltage: 3370
              eddystone_uid_instance: 5c5b35000001
              eddystone_uid_namespace: 2818e3868dec25629ede
              eddystone_url_url: https://www.abc.com
              ibeacon_major: 13
              ibeacon_minor: 138
              ibeacon_uuid: f3f17139-704a-f03a-2786-0400279e37c3
              mac: 7fc2936fd243
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              mfg_company_id: 935
              mfg_data: 648520a1020000
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              type: asset
              x: 13.5
              y: 3.2
          topic: location
        example-sdk_client:
          events:
            - id: de87bf9d-183f-e383-cc68-6ba43947d403
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              name: optional
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              type: sdk
              x: 13.5
              y: 3.2
          topic: location
        example-wifi_client:
          events:
            - mac: 5684dae9ac8b
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              type: wifi
              x: 13.5
              y: 3.2
          topic: location
      x-stoplight:
        id: b9aeb10d136c7
    webhook_occupancy_alerts:
      description: occupancy alert  webhook
      properties:
        events:
          items:
            properties:
              alert_events:
                description: list of occupancy alerts for non-compliance zones within the site detected around the same time
                items:
                  properties:
                    current_occupancy:
                      type: integer
                    map_id:
                      format: uuid
                      type: string
                    occupancy_limit:
                      type: integer
                    org_id:
                      format: uuid
                      type: string
                    timestamp:
                      type: number
                    type:
                      description: event type (COMPLIANCE-VIOLATION / COMPLIANCE-OK)
                      enum:
                        - COMPLIANCE-VIOLATION
                        - COMPLIANCE-OK
                      type: string
                    zone_id:
                      format: uuid
                      type: string
                    zone_name:
                      type: string
                  required:
                    - current_occupancy
                    - map_id
                    - occupancy_limit
                    - org_id
                    - timestamp
                    - type
                    - zone_id
                    - zone_name
                  type: object
                minItems: 1
                readOnly: true
                type: array
                uniqueItems: true
              for_site:
                readOnly: true
                type: boolean
              site_id:
                format: uuid
                readOnly: true
                type: string
              site_name:
                readOnly: true
                type: string
            required:
              - site_id
              - site_name
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: occupancy-alerts
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - alert_events:
                - current_occupancy: 10
                  map_id: f5d26c7f-1670-4921-a79d-09f887f46b44
                  occupancy_limit: 5
                  org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
                  timestamp: 1594861457
                  type: COMPLIANCE-VIOLATION
                  zone_id: b83312a7-7269-4ae1-bea8-e7cfe0e3073c
                  zone_name: PLM and Leadership
                - current_occupancy: 20
                  map_id: f5d26c7f-1670-4921-a79d-09f887f46b44
                  occupancy_limit: 10
                  org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
                  timestamp: 1594861457
                  type: COMPLIANCE-VIOLATION
                  zone_id: 80acf542-e863-43cf-9efd-9295468585e7
                  zone_name: CSQA
                - current_occupancy: 9
                  map_id: f5d26c7f-1670-4921-a79d-09f887f46b44
                  occupancy_limit: 4
                  org_id: 6748cfa6-4e12-11e6-9188-0242ac110007
                  timestamp: 1594861457
                  type: COMPLIANCE-VIOLATION
                  zone_id: a4c7a7c2-880e-4a0e-9626-02e5a9471f86
                  zone_name: Marketing & Sales Ops
              site_id: 67970e46-4e12-11e6-9188-0242ac110007
              site_name: TRUE MIST OFFICE [STAGING]
          topic: occupancy-alerts
      x-stoplight:
        id: f7a3f8bedd649
    webhook_ping:
      description: ping webhook
      properties:
        events:
          items:
            properties:
              id:
                format: uuid
                type: string
              name:
                type: string
              site_id:
                format: uuid
                type: string
              timestamp:
                type: number
            required:
              - id
              - name
              - site_id
              - timestamp
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: ping
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-1:
          events:
            - id: 18ff1f91-a9e0-c3b7-74ea-2ce4ea372f72
              name: my webhook
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
          topic: ping
      x-stoplight:
        id: 54d3cc3295be4
    webhook_sdkclient-scan-data:
      description: ""
      properties:
        events:
          items:
            properties:
              connection_ap:
                description: mac address of the AP the client is connected to
                minLength: 1
                type: string
              connection_band:
                description: 5GHz or 2.4GHz band, of the BSSID the client is connected to
                minLength: 1
                type: string
              connection_bssid:
                description: BSSID of the AP the client is connected to
                minLength: 1
                type: string
              connection_channel:
                description: channel of the band the client is connected to
                type: integer
              connection_rssi:
                description: RSSI of the client’s connection to the AP/BSSID
                type: number
              last_seen:
                description: time client last seen with scan data
                type: number
              mac:
                description: the client’s mac
                minLength: 1
                type: string
              scan_data:
                items:
                  properties:
                    ap:
                      description: mac address of the AP associated with the BSSID scanned
                      minLength: 1
                      type: string
                    band:
                      description: 5GHz or 2.4GHz band, associated with the BSSID scanned
                      enum:
                        - "2.4"
                        - "5"
                      minLength: 1
                      type: string
                    bssid:
                      description: BSSID found during client’s background scan for wifi
                      minLength: 1
                      type: string
                    channel:
                      description: channel of the band found in the scan
                      type: integer
                    rssi:
                      description: client’s RSSI relative to the BSSID scanned
                      type: number
                    ssid:
                      description: ESSID containing the BSSID scanned
                      minLength: 1
                      type: string
                    timestamp:
                      description: time the scan of the particular BSSID occurred
                      type: number
                  required:
                    - ap
                    - bssid
                    - band
                    - channel
                    - rssi
                    - ssid
                    - timestamp
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
              site_id:
                description: Site ID
                minLength: 1
                type: string
            required:
              - connection_ap
              - connection_band
              - connection_channel
              - connection_bssid
              - mac
              - connection_rssi
              - site_id
              - last_seen
            type: object
          minItems: 1
          readOnly: true
          type: array
          uniqueItems: true
        topic:
          default: sdkclient-scan-data
          enum:
            - sdkclient-scan-data
          minLength: 1
          type: string
      required:
        - topic
        - events
      type: object
      x-examples:
        example-1:
          events:
            - connection_ap: 5c5b352f587e
              connection_band: "2.4"
              connection_bssid: 5c5b352b51b4
              connection_channel: 11
              connection_rssi: -87
              last_seen: 1592333828
              mac: 70ef0071535f
              scan_data:
                - ap: 5c5b352f587e
                  band: "2.4"
                  bssid: 5c5b352b51b4
                  channel: 11
                  rssi: -87
                  ssid: mist-wifi
                  timestamp: 1592333828
                - ap: 5c5b352f587e
                  band: "5"
                  bssid: 5c5b352b51b8
                  channel: 36
                  rssi: -75
                  ssid: mist-wifi
                  timestamp: 1592333828
              site_id: d761985e-49b1-4506-88e9-e0368a05c301
          topic: sdkclient-scan-data
          value:
            events:
              - connection_ap: 5c5b352f587e
                connection_band: "2.4"
                connection_bssid: 5c5b352b51b4
                connection_channel: 11
                connection_rssi: -87
                last_seen: 1592333828
                mac: 70ef0071535f
                scan_data:
                  - ap: 5c5b352f587e
                    band: "2.4"
                    bssid: 5c5b352b51b4
                    channel: 11
                    rssi: -87
                    ssid: mist-wifi
                    timestamp: 1592333828
                  - ap: 5c5b352f587e
                    band: "5"
                    bssid: 5c5b352b51b8
                    channel: 36
                    rssi: -75
                    ssid: mist-wifi
                    timestamp: 1592333828
                site_id: d761985e-49b1-4506-88e9-e0368a05c301
            topic: sdkclient-scan-data
      x-stoplight:
        id: 595a3fb2a397a
    webhook_zone:
      description: zone webhook
      properties:
        events:
          description: list of events
          items:
            properties:
              asset_id:
                description: uuid of named asset
                format: uuid
                type: string
              id:
                description: uuid of SDK-client
                format: uuid
                type: string
              mac:
                description: mac address of wifi client or asset
                type: string
              map_id:
                description: map id
                format: uuid
                type: string
              name:
                description: name of the client, may be empty
                type: string
              site_id:
                description: site id
                format: uuid
                type: string
              timestamp:
                description: timestamp of the event, epoch
                type: integer
              trigger:
                description: enter / exit
                enum:
                  - enter
                  - exit
                type: string
              type:
                type: string
              zone_id:
                description: zone id
                format: uuid
                type: string
            required:
              - id
              - map_id
              - site_id
              - timestamp
              - trigger
              - type
              - zone_id
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        topic:
          default: zone
          description: topic subscribed to
          type: string
      required:
        - events
        - topic
      type: object
      x-examples:
        example-asset:
          events:
            - asset_id: c180b858-8f39-11e7-a7a5-346895ed1b7d
              mac: 7fc2936fd243
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              trigger: enter
              type: asset
              zone_id: 8ac84899-32db-6327-334c-9b6d58544cfe
          topic: zone
        example-sdk_client:
          events:
            - id: de87bf9d-183f-e383-cc68-6ba43947d403
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              name: optional
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              trigger: enter
              type: sdk
              zone_id: 8ac84899-32db-6327-334c-9b6d58544cfe
          topic: zone
        example-wifi_client:
          events:
            - mac: 5684dae9ac8b
              map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
              site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              timestamp: 1461220784
              trigger: enter
              type: wifi
              zone_id: 8ac84899-32db-6327-334c-9b6d58544cfe
          topic: zone
      x-stoplight:
        id: 0350c2a3b3c30
    wired_client.response:
      description: ""
      properties:
        device_mac:
          items:
            readOnly: true
            type: string
          readOnly: true
          type: array
        device_mac_port:
          items:
            properties:
              device_mac:
                minLength: 1
                type: string
              ip:
                readOnly: true
                type: string
              port_id:
                readOnly: true
                type: string
              port_parent:
                type: string
              start:
                readOnly: true
                type: string
              vlan:
                readOnly: true
                type: integer
              when:
                readOnly: true
                type: string
            readOnly: true
            type: object
          minItems: 1
          readOnly: true
          type: array
          uniqueItems: true
        ip:
          items:
            readOnly: true
            type: string
          readOnly: true
          type: array
        mac:
          readOnly: true
          type: string
        org_id:
          minLength: 1
          readOnly: true
          type: string
        port_id:
          items:
            readOnly: true
            type: string
          readOnly: true
          type: array
        site_id:
          minLength: 1
          readOnly: true
          type: string
        timestamp:
          readOnly: true
          type: number
        vlan:
          items:
            readOnly: true
            type: integer
          readOnly: true
          type: array
      type: object
      x-examples:
        example-1:
          device_mac:
            - "001122334455"
          device_mac_port:
            - device_mac: "001122334455"
              ip: ""
              port_id: et-0/0/1
              port_parent: ""
              start: 2020-12-10T00:07:36.262+0000
              vlan: 1
              when: 2022-03-29T04:56:05.172+0000
          ip:
            - 11.216.202.61
          mac: "112233445566"
          org_id: c168ddee-c14c-11e5-8e81-1258369c38a9
          port_id:
            - et-0/0/1
          site_id: c168ddee-c14c-11e5-8e81-1258369c38a9
          timestamp: 1571174567.807
          vlan:
            - 0
            - 1001
    wlan:
      description: |-
        WLAN

        **Note**: portal_template will be forked out of wlan objects soon. To fetch portal_template, please query portal_template_url. To update portal_template, use Wlan Portal Template.
      properties:
        acct_interim_interval:
          default: 0
          description: how frequently should interim accounting be reported, 60-65535. default is 0 (use one specified in Access-Accept request from RADIUS Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled
          maximum: 65535
          minimum: 0
          type: integer
        acct_servers:
          description: list of RADIUS accounting servers, optional, order matters where the first one is treated as primary
          items:
            $ref: "#/components/schemas/acct_server"
          type: array
        airwatch:
          $ref: "#/components/schemas/wlan_airwatch"
        allow_ipv6_ndp:
          default: true
          description: only applicable when limit_bcast==true, which allows or disallows ipv6 Neighbor Discovery packets to go through
          type: boolean
        allow_mdns:
          default: false
          description: only applicable when limit_bcast==true, which allows mDNS / Bonjour packets to go through
          type: boolean
        allow_ssdp:
          default: false
          description: only applicable when `limit_bcast`==`tru`e, which allows SSDP
          type: boolean
        ap_ids:
          description: list of device ids
          items:
            format: uuid
            type: string
          nullable: true
          type: array
        app_limit:
          description: bandwidth limiting for apps (applies to up/down)
          properties:
            apps:
              description: map from app key to bandwidth in kbps. app key defined in Get Application List
              type: object
            enabled:
              type: boolean
            wxtag_ids:
              description: map from wxtag_id of Hostname Wxlan Tags to bandwidth in kbps
              type: object
          type: object
        app_qos:
          $ref: "#/components/schemas/wlan_app_qos"
        apply_to:
          enum:
            - site
            - wxtags
            - aps
          nullable: true
          type: string
        arp_filter:
          default: false
          description: whether to enable smart arp filter
          type: boolean
        auth:
          $ref: "#/components/schemas/wlan_auth"
        auth_server_selection:
          default: ordered
          description: When ordered, AP will prefer and go back to the first server if possible
          enum:
            - ordered
            - unordered
          nullable: true
          type: string
        auth_servers:
          description: list of RADIUS authentication servers, at least one is needed if `auth type`==`eap`, order matters where the first one is treated as primary
          items:
            $ref: "#/components/schemas/auth_server"
          type: array
        auth_servers_nas_id:
          description: optional, up to 48 bytes, will be dynamically generated if not provided. used only for authentication servers
          nullable: true
          type: string
        auth_servers_nas_ip:
          description: optional, NAS-IP-ADDRESS to use
          nullable: true
          type: string
        auth_servers_retries:
          default: 2
          description: radius auth session retries
          type: integer
        auth_servers_timeout:
          default: 5
          description: radius auth session timeout
          type: integer
        band:
          deprecated: true
          description: "`band` is deprecated and kept for backward compability. Use bands instead"
          type: string
        band_steer:
          default: false
          description: whether to enable band_steering, this works only when band==both
          type: boolean
        band_steer_force_band5:
          default: false
          description: force dual-band capable client to connect to 5G
          type: boolean
        bands:
          default:
            - "24"
            - "5"
          description: list of radios that the wlan should apply to
          items:
            enum:
              - "24"
              - "5"
              - "6"
            type: string
          type: array
        block_blacklist_clients:
          description: whether to block the clients in the blacklist (up to first 256 macs)
          type: boolean
        bonjour:
          $ref: "#/components/schemas/wlan_bonjour"
        cisco_cwa:
          $ref: "#/components/schemas/wlan_cisco_cwa"
        client_limit_down:
          description: kbps
          type: integer
        client_limit_down_enabled:
          default: false
          description: if downlink limiting per-client is enabled
          type: boolean
        client_limit_up:
          description: kbps
          type: integer
        client_limit_up_enabled:
          default: false
          description: if uplink limiting per-client is enabled
          type: boolean
        coa_servers:
          description: list of COA (change of authorization) servers, optional
          items:
            $ref: "#/components/schemas/coa_server"
          nullable: true
          type: array
        created_time:
          readOnly: true
          type: number
        disable_11ax:
          default: false
          description: some old WLAN drivers may not be compatible
          type: boolean
        disable_ht_vht_rates:
          default: false
          description: to disable ht or vht rates
          type: boolean
        disable_uapsd:
          default: false
          description: whether to disable U-APSD
          type: boolean
        disable_v1_roam_notify:
          default: true
          description: disable sending v2 roam notification messages
          type: boolean
        disable_v2_roam_notify:
          default: false
          description: disable sending v2 roam notification messages
          type: boolean
        disable_wmm:
          default: false
          description: whether to disable WMM
          type: boolean
        dns_server_rewrite:
          description: for radius_group-based DNS server (rewrite DNS request depending on the Group RADIUS server returns)
          nullable: true
          properties:
            enabled:
              type: boolean
            radius_groups:
              description: map between radius_group and the desired DNS server (IPv4 only)
              type: object
          type: object
        dtim:
          default: 2
          type: integer
        dynamic_psk:
          description: |-
            for dynamic PSK where we get per-user PSK from Radius
            dynamic_psk allows PSK to be selected at runtime depending on context (wlan/site/user/...) thus following configurations are assumed (currently)
            - PSK will come from RADIUS server
            - AP sends client MAC as username ans password (i.e. `enable_mac_auth` is assumed)
            - AP sends BSSID:SSID as Caller-Station-ID
            - `auth_servers` is required
            - PSK will come from cloud WLC if source is cloud_psks
            - default_psk will be used if cloud WLC is not available
            - `multi_psk_only` and `psk` is ignored
            - `pairwise` can only be wpa2-ccmp (for now, wpa3 support on the roadmap)
          nullable: true
          properties:
            default_psk:
              description: default PSK to use if cloud WLC is not available, 8-63 characters
              maxLength: 63
              minLength: 8
              type: string
            default_vlan_id:
              nullable: true
              type: integer
            enabled:
              type: boolean
            source:
              default: radius
              enum:
                - radius
                - cloud_psks
              type: string
            vlan_ids:
              items:
                maximum: 4094
                minimum: 1
                nullable: true
                type: integer
              type: array
          type: object
        dynamic_vlan:
          description: for 802.1x
          nullable: true
          properties:
            default_vlan_id:
              default: 999
              description: vlan_id to use when there’s no match from RADIUS
              maximum: 4094
              minimum: 1
              nullable: true
              type: integer
            enabled:
              default: false
              description: whether to enable dynamic vlan
              type: boolean
            local_vlan_ids:
              description: vlan_ids to be locally bridged
              items:
                maximum: 4094
                minimum: 1
                nullable: true
                type: integer
              type: array
            type:
              description: standard (using Tunnel-Private-Group-ID, widely supported), airespace-interface-name (Airespace/Cisco)
              enum:
                - standard
                - airespace-interface-name
              nullable: true
              type: string
            vlans:
              additionalProperties:
                type: string
              description: map between vlan_id (as string) to airespace interface names (comma-separated) or null for stndard mapping
              type: object
          type: object
        enable_local_keycaching:
          default: false
          description: enable AP-AP keycaching via multicast
          type: boolean
        enable_wireless_bridging:
          description: |-
            whether to enable wireless bridging, which allows more broadcast packets to go through
            (allows forwarding of DHCP response to client not associated with the AP)
          type: boolean
        enabled:
          default: true
          description: if this wlan is enabled
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        hide_ssid:
          default: false
          description: whether to hide SSID in beacon
          type: boolean
        hostname_ie:
          default: false
          description: include hostname inside IE in AP beacons / probe responses
          type: boolean
        hotspot20:
          $ref: "#/components/schemas/wlan_hotspot_20"
        id:
          format: uuid
          readOnly: true
          type: string
        interface:
          default: all
          description: where this WLAN will be connected to
          enum:
            - all
            - eth0
            - eth1
            - eth2
            - eth3
            - wxtunnel
            - mxtunnel
            - site_mxedge
          type: string
        isolation:
          default: false
          description: whether to allow clients to talk to each other
          type: boolean
        l2_isolation:
          default: false
          description: if isolation is enabled, whether to deny clients to talk to L2 on the LAN
          type: boolean
        legacy_overds:
          description: legacy devices requires the Over-DS (for Fast BSS Transition) bit set (while our chip doesn’t support it). Warning! Enabling this will cause problem for iOS devices.
          type: boolean
        limit_bcast:
          default: false
          description: whether to limit broadcast packets going to wireless (i.e. only allow certain bcast packets to go through)
          type: boolean
        limit_probe_response:
          description: limit probe response base on some heuristic rules
          type: boolean
        max_idletime:
          default: 1800
          description: max idle time in seconds
          maximum: 86400
          minimum: 60
          type: integer
        mist_nac:
          properties:
            enabled:
              description: |-
                when enabled:
                * `auth_servers` is ignored
                * `acct_servers` is ignored
                * `auth_servers_*` are ignored
                * `coa_servers` is ignored
                * `radsec` is ignored
              type: boolean
          type: object
        modified_time:
          readOnly: true
          type: number
        msp_id:
          format: uuid
          readOnly: true
          type: string
        mxtunnel:
          description: when `interface`=`site_medge`, the definition of the Mist Tunnels (key is the name)
          type: object
        mxtunnel_id:
          description: when `interface`=`mxtunnel`, id of the Mist Tunnel
          format: uuid
          nullable: true
          type: string
        mxtunnel_name:
          default: default
          description: when `interface`=`site_medge`, name of the mxtunnel that in mxtunnels under Site Setting
          nullable: true
          type: string
        no_static_dns:
          default: false
          description: whether to only allow client to use DNS that we’ve learned from DHCP response
          type: boolean
        no_static_ip:
          default: false
          description: whether to only allow client that we’ve learned from DHCP exchange to talk
          type: boolean
        org_id:
          format: uuid
          readOnly: true
          type: string
        portal:
          $ref: "#/components/schemas/wlan_portal"
        portal_allowed_hostnames:
          description: list of hostnames without http(s):// (matched by substring)
          items:
            type: string
          type: array
        portal_allowed_subnets:
          description: list of CIDRs
          items:
            type: string
          type: array
        portal_api_secret:
          description: api secret (auto-generated) that can be used to sign guest authorization requests
          nullable: true
          type: string
        portal_denied_hostnames:
          description: list of hostnames without http(s):// (matched by substring), this takes precedence over portal_allowed_hostnames
          items:
            type: string
          type: array
        portal_image:
          description: Url of portal background image
          format: uri
          nullable: true
          type: string
        portal_sso_url:
          nullable: true
          type: string
        portal_template_url:
          description: N.B portal_template will be forked out of wlan objects soon. To fetch portal_template, please query portal_template_url. To update portal_template, use Wlan Portal Template.
          nullable: true
          type: string
        qos:
          properties:
            class:
              default: best_effort
              enum:
                - background
                - best_effort
                - video
                - voice
              type: string
            overwrite:
              default: false
              description: whether to overwrite QoS
              type: boolean
          type: object
        radsec:
          $ref: "#/components/schemas/radsec"
        rateset:
          properties:
            "5":
              $ref: "#/components/schemas/wlan_datarates"
            "24":
              $ref: "#/components/schemas/wlan_datarates"
          type: object
        roam_mode:
          default: none
          enum:
            - none
            - NONE
            - OKC
            - 11r
          nullable: true
          type: string
        schedule:
          description: WLAN operating schedule, default is disabled
          properties:
            enabled:
              default: false
              type: boolean
            hours:
              description: time ranges, the key is mon / tue / wed / thu / fri / sat / sun, the value is time range in “HH:MM-HH:MM” (24-hour format), the minimum resolution is 30 minute
              type: object
          type: object
        site_id:
          format: uuid
          readOnly: true
          type: string
        sle_excluded:
          default: false
          description: whether to exclude this WLAN from SLE metrics
          type: boolean
        ssid:
          description: the name of the SSID
          type: string
        template_id:
          format: uuid
          nullable: true
          type: string
        thumbnail:
          description: Url of portal background image thumbnail
          format: uri
          nullable: true
          type: string
        use_eapol_v1:
          default: false
          description: if `auth.type`==’eap’ or ‘psk’, should only be set for legacy client, such as pre-2004, 802.11b devices
          type: boolean
        vlan_enabled:
          default: false
          description: if vlan tagging is enabled
          type: boolean
        vlan_id:
          maximum: 4094
          minimum: 1
          nullable: true
          type: integer
        vlan_ids:
          description: list of VLAN ids
          items:
            maximum: 4094
            minimum: 1
            nullable: true
            type: integer
          type: array
        vlan_pooling:
          default: false
          description: vlan pooling allows AP to place client on different VLAN using a deterministic algorithm
          type: boolean
        wlan_limit_down:
          description: kbps
          type: integer
        wlan_limit_down_enabled:
          default: false
          description: if downlink limiting for whole wlan is enabled
          type: boolean
        wlan_limit_up:
          description: kbps
          type: integer
        wlan_limit_up_enabled:
          default: false
          description: if uplink limiting for whole wlan is enabled
          type: boolean
        wxtag_ids:
          description: list of wxtag_ids
          items:
            format: uuid
            type: string
          nullable: true
          type: array
        wxtunnel_id:
          description: when `interface`=`wxtunnel`, id of the WXLAN Tunnel
          nullable: true
          type: string
        wxtunnel_remote_id:
          description: when `interface`=`wxtunnel`, remote tunnel identifier
          nullable: true
          type: string
      required:
        - ssid
      type: object
      x-examples:
        example-1:
          acct_interim_interval: 0
          acct_servers:
            - host: string
              port: 0
              secret: string
          airwatch:
            api_key: string
            console_url: string
            enabled: true
            password: string
            username: string
          allow_ipv6_ndp: true
          allow_mdns: true
          ap_ids:
            - string
          app_limit:
            apps: {}
            enabled: true
            wxtag_ids: {}
          app_qos:
            apps:
              skype-business-video:
                dscp: 0
                dst_subnet: string
                src_subnet: string
              skype-business-voice:
                dscp: 0
            enabled: true
            others:
              - dscp: 0
                dst_subnet: string
                port_ranges: string
                protocol: string
                src_subnet: string
          apply_to: string
          arp_filter: true
          auth:
            eap_reauth: true
            enable_mac_auth: true
            key_idx: 1
            keys:
              - string
            multi_psk_only: true
            owe: string
            pairwise:
              - string
            private_wlan: true
            psk: string123
            type: string
            wep_as_secondary_auth: true
          auth_server_selection: ordered
          auth_servers:
            - host: string
              port: 0
              secret: string
          auth_servers_nas_id: string
          auth_servers_nas_ip: string
          auth_servers_retries: 0
          auth_servers_timeout: 0
          band: string
          band_steer: true
          band_steer_force_band5: true
          block_blacklist_clients: true
          bonjour:
            additional_vlan_ids:
              - 0
            enabled: true
            services:
              $service_name:
                disable_local: true
                radius_groups:
                  - string
                scope: string
          cisco_cwa:
            allowed_hostnames:
              - string
            allowed_subnets:
              - string
            enabled: true
          client_limit_down: 0
          client_limit_down_enabled: true
          client_limit_up: 0
          client_limit_up_enabled: true
          coa_servers:
            - disable_event_timestamp_check: true
              enabled: true
              ip: string
              port: 0
              secret: string
          disable_11ax: true
          disable_uapsd: true
          disable_wmm: true
          dns_server_rewrite:
            enabled: true
            radius_groups: {}
          dtim: 0
          dynamic_psk:
            enabled: true
          dynamic_vlan:
            default_vlan_id: 1
            enabled: true
            local_vlan_ids:
              - 0
            type: string
            vlans:
              - {}
          enable_wireless_bridging: true
          enabled: true
          hide_ssid: true
          hostname_ie: true
          hotspot20:
            enabled: true
            operators:
              - null
            venue_name: string
          interface: string
          isolation: true
          legacy_overds: true
          limit_bcast: true
          limit_probe_response: true
          max_idletime: 60
          mxtunnel_id: string
          no_static_dns: true
          no_static_ip: true
          portal:
            amazon_client_id: string
            amazon_client_secret: string
            amazon_email_domains:
              - string
            amazon_enabled: true
            auth: string
            azure_client_id: string
            azure_client_secret: string
            azure_enabled: true
            azure_tenant_id: string
            bypass_when_cloud_down: true
            email_enabled: true
            enabled: true
            expire: 0
            external_portal_url: string
            facebook_client_id: string
            facebook_client_secret: string
            facebook_email_domains:
              - string
            facebook_enabled: true
            forward: true
            forward_url: string
            google_email_domains:
              - string
            google_enabled: true
            microsoft_client_id: string
            microsoft_client_secret: string
            microsoft_email_domains:
              - string
            microsoft_enabled: true
            passphrase_enabled: true
            password: string
            portal_allowed_hostnames: string
            portal_allowed_subnets: string
            portal_api_secret: string
            portal_denied_hostnames: string
            portal_image: string
            portal_sso_url: string
            privacy: true
            sms_enabled: true
            sms_provider: string
            sponsor_email_domains:
              - string
            sponsor_enabled: true
            sponsor_link_validity_duration: "60"
            sso_default_role: string
            sso_idp_cert: string
            sso_idp_sign_algo: string
            sso_idp_sso_url: string
            sso_issuer: string
            thumbnail: string
            twilio_auth_token: string
            twilio_phone_number: string
            twilio_sid: string
          portal_allowed_hostnames:
            - string
          portal_allowed_subnets:
            - string
          portal_api_secret: string
          portal_denied_hostnames:
            - string
          portal_image: http://example.com
          portal_sso_url: string
          portal_template_url: string
          qos:
            class: string
            overwrite: true
          radsec:
            enabled: true
            server_name: string
            servers:
              - host: string
                port: 0
          rateset:
            "5":
              ht: string
              legacy:
                - string
              min_rssi: 0
              template: string
              vht: string
            "24":
              ht: string
              legacy:
                - string
              min_rssi: 0
              template: string
              vht: string
          roam_mode: 11r
          schedule:
            enabled: true
            hours: {}
          sle_excluded: true
          ssid: string
          thumbnail: http://example.com
          use_eapol_v1: true
          vlan_enabled: true
          vlan_id: 1
          vlan_ids:
            - 0
          vlan_pooling: true
          wlan_limit_down: 0
          wlan_limit_down_enabled: true
          wlan_limit_up: 0
          wlan_limit_up_enabled: true
          wxtag_ids:
            - string
          wxtunnel_id: string
          wxtunnel_remote_id: string
    wlan_airwatch:
      description: airwatch wlan settings
      properties:
        api_key:
          description: API Key
          type: string
        console_url:
          description: console URL
          type: string
        enabled:
          type: boolean
        password:
          description: password
          type: string
        username:
          description: username
          type: string
      type: object
    wlan_app_qos:
      description: app qos wlan settings
      properties:
        apps:
          properties:
            skype-business-video:
              properties:
                dscp:
                  type: integer
                dst_subnet:
                  type: string
                src_subnet:
                  type: string
              type: object
            skype-business-voice:
              properties:
                dscp:
                  type: integer
              type: object
          type: object
        enabled:
          type: boolean
        others:
          items:
            properties:
              dscp:
                type: integer
              dst_subnet:
                type: string
              port_ranges:
                type: string
              protocol:
                type: string
              src_subnet:
                type: string
            type: object
          minItems: 1
          type: array
          uniqueItems: true
      type: object
      x-examples:
        example-1:
          apps:
            skype-business-video:
              dscp: 32
              dst_subnet: 10.2.0.0/16
              src_subnet: 10.2.0.0/16
            skype-business-voice:
              dscp: 46
          enabled: true
          others:
            - dscp: 32
              dst_subnet: 10.2.0.0/16
              port_ranges: 80,1024-65535
              protocol: udp
              src_subnet: 10.2.0.0/16
    wlan_auth:
      description: authentication wlan settings
      properties:
        anticlog_threshold:
          default: 16
          description: SAE anti-clogging token threshold
          maximum: 32
          minimum: 16
          type: integer
        eap_reauth:
          default: false
          description: whether to trigger EAP reauth when the session ends
          type: boolean
        enable_mac_auth:
          default: false
          description: whether to enable MAC Auth, uses the same auth_servers
          type: boolean
        key_idx:
          default: 1
          description: when type=wep
          maximum: 4
          minimum: 1
          type: integer
        keys:
          description: when type=wep, four 10-character or 26-character hex string, null can be used. All keys, if provided, have to be in the same length
          items:
            nullable: true
            type: string
          type: array
        multi_psk_only:
          default: false
          description: whether to only use multi_psk
          type: boolean
        owe:
          type: string
        pairwise:
          default:
            - wpa2-ccmp
          description: when type=psk / eap, one or more of wpa2-ccmp / wpa1-tkip / wpa1-ccmp / wpa2-tkip
          items:
            nullable: true
            type: string
          type: array
        private_wlan:
          description: whether private wlan is enabled. only applicable to multi_psk mode
          type: boolean
        psk:
          description: when type=psk, 8-64 characters, or 64 hex characters
          maxLength: 64
          minLength: 8
          nullable: true
          type: string
        type:
          default: open
          enum:
            - open
            - psk
            - wep
            - eap
            - psk-tkip
            - psk-wpa2-tkip
          type: string
        wep_as_secondary_auth:
          description: enable WEP as secondary auth
          type: boolean
      required:
        - type
      type: object
      x-examples:
        example-1:
          eap_reauth: true
          enable_mac_auth: true
          key_idx: 1
          keys:
            - string
          multi_psk_only: true
          owe: string
          private_wlan: true
          psk: string123
          type: string
          wep_as_secondary_auth: true
    wlan_bonjour:
      description: bonjour gateway wlan settings
      properties:
        additional_vlan_ids:
          description: additional VLAN IDs (on the LAN side or from other WLANs) should we be forwarding bonjour queries/responses
          items:
            type: integer
          type: array
        enabled:
          default: false
          description: whether to enable bonjour for this WLAN. Once enabled, limit_bcast is assumed true, allow_mdns is assumed false
          type: boolean
        services:
          additionalProperties:
            properties:
              disable_local:
                default: false
                description: whether to prevent wireless clients to discover bonjour devices on the same WLAN
                type: boolean
              radius_groups:
                description: optional, if the service is further restricted for certain RADIUS groups
                items:
                  type: string
                type: array
              scope:
                description: how bonjour services should be discovered for the same WLAN, same_site (default) / same_map / same_ap
                type: string
            type: object
          description: what services are allowed
          type: object
      required:
        - services
        - additional_vlan_ids
      type: object
      x-examples:
        example-1:
          additional_vlan_ids:
            - 80
          enabled: true
          services:
            airplay:
              radius_groups:
                - teachers
              scope: same_ap
            airprint:
              scope: same_map
    wlan_cisco_cwa:
      description: |
        Cisco CWA (central web authentication) required RADIUS with COA in order to work. See CWA: https://www.cisco.com/c/en/us/support/docs/security/identity-services-engine/115732-central-web-auth-00.html
      properties:
        allowed_hostnames:
          description: list of hostnames without http(s):// (matched by substring)
          items:
            type: string
          type: array
        allowed_subnets:
          description: list of CIDRs
          items:
            type: string
          type: array
        blocked_subnets:
          description: list of blocked CIDRs
          items:
            example: 192.168.0.0/16
            type: string
          type: array
        enabled:
          default: false
          type: boolean
      type: object
    wlan_datarates:
      description: data rates wlan settings
      properties:
        ht:
          description: MCS bitmasks for 4 streams (16-bit for each stream, MCS0 is least significant bit), e.g. 00ff 00f0 001f limits HT rates to MCS 0-7 for 1 stream, MCS 4-7 for 2 stream (i.e. MCS 12-15), MCS 1-5 for 3 stream (i.e. MCS 16-20)
          nullable: true
          type: string
        legacy:
          description: list of supported rates (IE=1) and extended supported rates (IE=50) for custom template, append ‘b’ at the end to indicate a rate being basic/mandatory. If `template`==`custom` is configured and legacy does not define at least one basic rate, it will use `no-legacy` default values
          items:
            type: string
          type: array
        min_rssi:
          description: Minimum RSSI for client to connect, 0 means not enforcing
          type: integer
        template:
          description: |-
            * `no-legacy`: no 11b
            * `compatible`: all, like before, default setting that Broadcom/Atheros used
            * `legacy-only`: disable 802.11n and 802.11ac 
            * `high-density`: no 11b, no low rates
            * `custom`: user defined
          nullable: true
          type: string
        vht:
          description: MCS bitmasks for 4 streams (16-bit for each stream, MCS0 is least significant bit), e.g. 03ff 01ff 00ff limits VHT rates to MCS 0-9 for 1 stream, MCS 0-8 for 2 streams, and MCS 0-7 for 3 streams.
          type: string
      type: object
    wlan_hotspot_20:
      description: hostspot 2.0 wlan settings
      properties:
        enabled:
          description: whether to enable hotspot 2.0 config
          type: boolean
        operators:
          description: "list of operators to support, options: att, google, tmobile, charter, boingo, hughes_systique, single_digits, global_reach"
          items:
            type: string
          type: array
        venue_name:
          description: venue name, default is site name
          type: string
      type: object
    wlan_portal:
      description: portal wlan settings
      properties:
        allow_wlan_id_roam:
          default: false
          description: whether to allow guest roam between different wlan_ids (same ssid). requires cross_site enabled
          type: boolean
        amazon_client_id:
          description: amazon OAuth2 client id. This is optional. If not provided, it will use a default one.
          nullable: true
          type: string
        amazon_client_secret:
          description: amazon OAuth2 client secret. If amazon_client_id was provided, provide a correspoinding value. Else leave blank.
          nullable: true
          type: string
        amazon_email_domains:
          description: Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
          items:
            type: string
          type: array
        amazon_enabled:
          description: whether amazon is enabled as a login method
          type: boolean
        auth:
          default: none
          description: authentication scheme
          enum:
            - none
            - email
            - external
            - sso
          nullable: true
          type: string
        azure_client_id:
          description: azure active directory app client id
          nullable: true
          type: string
        azure_client_secret:
          description: azure active directory app client secret
          nullable: true
          type: string
        azure_enabled:
          description: whether Azure Active Directory is enabled as a login method
          type: boolean
        azure_tenant_id:
          description: azure active directory tenant id.
          nullable: true
          type: string
        broadnet_password:
          description: when `sms_provider`==`broadnet`
          type: string
        broadnet_sid:
          description: when `sms_provider`==`broadnet`
          type: string
        broadnet_user_id:
          description: when `sms_provider`==`broadnet`
          type: string
        bypass_when_cloud_down:
          default: false
          description: whether to bypass the guest portal when cloud not reachable (and apply the default policies)
          type: boolean
        clickatell_api_key:
          description: when `sms_provider`==`clickatell`
          type: string
        cross_site:
          default: false
          description: whether to allow guest to roam between sites of same org without reauthentication
          type: boolean
        email_enabled:
          description: whether email (access code verification) is enabled as a login method
          type: boolean
        enabled:
          default: false
          description: whether guest portal is enabled
          type: boolean
        expire:
          default: 1440
          description: how long to remain authorized, in minutes
          type: number
        external_portal_url:
          description: external portal URL (e.g. https://host/url) where we can append our query parameters to
          type: string
        facebook_client_id:
          description: facebook OAuth2 app id. This is optional. If not provided, it will use a default one.
          nullable: true
          type: string
        facebook_client_secret:
          description: facebook OAuth2 app secret. If facebook_client_id was provided, provide a correspoinding value. Else leave blank.
          nullable: true
          type: string
        facebook_email_domains:
          description: Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
          items:
            type: string
          type: array
        facebook_enabled:
          description: whether facebook is enabled as a login method
          type: boolean
        forward:
          default: false
          description: whether to forward the user to another URL after authorized
          type: boolean
        forward_url:
          description: the URL to forward the user to
          nullable: true
          type: string
        google_client_id:
          description: Google OAuth2 app id. This is optional. If not provided, it will use a default one.
          nullable: true
          type: string
        google_client_secret:
          description: Google OAuth2 app secret. If google_client_id was provided, provide a correspoinding value. Else leave blank.
          nullable: true
          type: string
        google_email_domains:
          description: Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
          items:
            type: string
          type: array
        google_enabled:
          description: whether google is enabled as login method
          type: boolean
        gupshup_password:
          description: when `sms_provider`==`gupshup`
          type: string
        gupshup_userid:
          description: when `sms_provider`==`gupshup`
          type: string
        microsoft_client_id:
          description: microsoft 365 OAuth2 client id. This is optional. If not provided, it will use a default one.
          nullable: true
          type: string
        microsoft_client_secret:
          description: microsoft 365 OAuth2 client secret. If microsoft_client_id was provided, provide a correspoinding value. Else leave blank.
          nullable: true
          type: string
        microsoft_email_domains:
          description: Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
          items:
            type: string
          type: array
        microsoft_enabled:
          description: whether microsoft 365 is enabled as a login method
          type: boolean
        passphrase_enabled:
          description: whether password is enabled
          type: boolean
        password:
          description: passphrase
          nullable: true
          type: string
        portal_allowed_hostnames:
          description: list of hostnames without http(s):// (matched by substring)
          type: string
        portal_allowed_subnets:
          description: list of CIDRs
          type: string
        portal_api_secret:
          description: api secret (auto-generated) that can be used to sign guest authorization requests
          type: string
        portal_denied_hostnames:
          description: list of hostnames without http(s):// (matched by substring), this takes precedence over portal_allowed_hostnames
          type: string
        portal_image:
          description: Url of portal background image
          type: string
        portal_sso_url:
          description: for SAML, this is used as the ACS URL
          type: string
        predefined_sponsors_enabled:
          default: true
          description: whether to show list of sponsor emails mentioned in `sponsors` object as a dropdown. If both `sponsor_notify_all` and `predefined_sponsors_enabled` are false, behaviour is acc to `sponsor_email_domains\
          type: boolean
        privacy:
          type: boolean
        puzzel_password:
          description: when `sms_provider`==`puzzel`
          type: string
        puzzel_service_id:
          description: when `sms_provider`==`puzzel`
          type: string
        puzzel_username:
          description: when `sms_provider`==`puzzel`
          type: string
        smsMessageFormat:
          type: string
        sms_enabled:
          description: whether sms is enabled as a login method
          type: boolean
        sms_provider:
          default: manual
          enum:
            - manual
            - twilio
            - broadnet
            - clickatell
            - puzzel
            - gupshup
            - telstra
          type: string
        sponsor_auto_approve:
          default: false
          description: whether to automatically approve guest and allow sponsor to revoke guest access, needs predefined_sponsors_enabled enabled and sponsor_notify_all disabled
          type: boolean
        sponsor_email_domains:
          description: list of domain allowed for sponsor email. Required if `sponsor_enabled` is `true` and `sponsors` is empty.
          items:
            type: string
          type: array
        sponsor_enabled:
          description: whether sponsor is enabled
          type: boolean
        sponsor_link_validity_duration:
          description: how long to remain valid sponsored guest request approve/deny link received in email, in minutes.
          type: string
        sponsor_notify_all:
          default: false
          description: whether to notify all sponsors that are mentioned in `sponsors` object. Both `sponsor_notify_all` and `predefined_sponsors_enabled` should be true in order to notify sponsors. If true, email sent to 10 sponsors in no particular order.
          type: boolean
        sponsors:
          additionalProperties:
            type: string
          description: object of allowed sponsors email with name. Required if `sponsor_enabled` is `true` and `sponsor_email_domains` is empty.
          type: object
        sso_default_role:
          description: default role to assign if there’s no match. By default, an assertion is treated as invalid when there’s no role matched
          type: string
        sso_forced_role:
          type: string
        sso_idp_cert:
          description: IDP Cert (used to verify the signed response)
          type: string
        sso_idp_sign_algo:
          description: signing algorithm for SAML Assertion
          type: string
        sso_idp_sso_url:
          description: IDP Single-Sign-On URL
          type: string
        sso_issuer:
          description: IDP issuer URL
          type: string
        sso_nameid_format:
          default: email
          enum:
            - email
            - unspecified
          type: string
        telstra_client_id:
          description: when `sms_provider`==`telstra`, Client ID provided by Telstra
          type: string
        telstra_client_secret:
          description: when `sms_provider`==`telstra`, Client secret provided by Telstra
          type: string
        thumbnail:
          description: Url of portal background image thumbnail
          type: string
        twilio_auth_token:
          description: when `sms_provider`==`twilio`, Auth token account with twilio account
          nullable: true
          type: string
        twilio_phone_number:
          description: when `sms_provider`==`twilio`, Twilio phone number associated with the account. See example for accepted format.
          nullable: true
          type: string
        twilio_sid:
          description: when `sms_provider`==`twilio`, Account SID provided by Twilio
          nullable: true
          type: string
      type: object
      x-examples:
        example-1:
          amazon_client_id: string
          amazon_client_secret: string
          amazon_email_domains:
            - string
          amazon_enabled: true
          auth: none
          azure_client_id: string
          azure_client_secret: string
          azure_enabled: true
          azure_tenant_id: string
          broadnet_password: string
          broadnet_sid: string
          broadnet_user_id: string
          bypass_when_cloud_down: false
          clickatell_api_key: string
          email_enabled: true
          enabled: false
          expire: 1440
          external_portal_url: string
          facebook_client_id: string
          facebook_client_secret: string
          facebook_email_domains:
            - string
          facebook_enabled: true
          forward: false
          forward_url: string
          google_client_id: string
          google_client_secret: string
          google_email_domains:
            - string
          google_enabled: true
          gupshup_password: string
          gupshup_userid: string
          microsoft_client_id: string
          microsoft_client_secret: string
          microsoft_email_domains:
            - string
          microsoft_enabled: true
          passphrase_enabled: true
          password: string
          portal_allowed_hostnames: string
          portal_allowed_subnets: string
          portal_api_secret: string
          portal_denied_hostnames: string
          portal_image: string
          portal_sso_url: string
          predefined_sponsors_enabled: true
          privacy: true
          puzzel_password: string
          puzzel_service_id: string
          puzzel_username: string
          smsMessageFormat: string
          sms_enabled: true
          sms_provider: manual
          sponsor_email_domains:
            - string
          sponsor_enabled: true
          sponsor_link_validity_duration: string
          sponsor_notify_all: false
          sponsors:
            property1: string
            property2: string
          sso_default_role: string
          sso_forced_role: string
          sso_idp_cert: string
          sso_idp_sign_algo: string
          sso_idp_sso_url: string
          sso_issuer: string
          sso_nameid_format: email
          thumbnail: string
          twilio_auth_token: string
          twilio_phone_number: string
          twilio_sid: string
    wlan_portal_template:
      description: portal template wlan settings
      properties:
        accessCodeAlternateEmail:
          description: “Please provide valid alternate email”
          type: string
        alignment:
          description: defines alignment on portal. “left” is default.
          type: string
        authButtonAmazon:
          description: label for Amazon auth button
          type: string
        authButtonAzure:
          description: label for Azure auth button
          type: string
        authButtonEmail:
          description: label for Email auth button
          type: string
        authButtonFacebook:
          description: label for Facebook auth button
          type: string
        authButtonGoogle:
          description: label for Google auth button
          type: string
        authButtonMicrosoft:
          description: label for Microsoft auth button
          type: string
        authButtonPassphrase:
          description: label for passphrase auth button
          type: string
        authButtonSms:
          description: label for SMS auth button
          type: string
        authButtonSponsor:
          description: label for Sponsor auth button
          type: string
        authLabel:
          description: “Connect to WiFi with”
          type: string
        backLink:
          description: label of the link to go back to /logon
          type: string
        color:
          description: “#1074bc”
          type: string
        colorDark:
          description: “#0b5183”
          type: string
        colorLight:
          description: “#3589c6”
          type: string
        company:
          default: false
          description: whether company field is required
          type: boolean
        companyError:
          description: error message when company not provided
          type: string
        companyLabel:
          description: label of company field
          type: string
        email:
          default: false
          description: whether email field is required
          type: boolean
        emailAccessDomainError:
          description: error message when a user has valid social login but doesn’t match specified email domains.
          type: string
        emailCancel:
          description: Label for cancel confirmation code submission using email auth
          type: string
        emailCodeCancel:
          type: string
        emailCodeError:
          description: “Please provide valid alternate email”
          type: string
        emailCodeFieldLabel:
          description: “Confirmation Code”
          type: string
        emailCodeMessage:
          description: “Enter the access number that was sent to your email address.”
          type: string
        emailCodeSubmit:
          description: “Sign In
          type: string
        emailCodeTitle:
          description: “Access Code”
          type: string
        emailError:
          description: error message when email not provided
          type: string
        emailFieldLabel:
          description: “Enter your email address”
          type: string
        emailLabel:
          description: label of email field
          type: string
        emailMessage:
          description: “We will email you an authentication code which you can use to connect to the WiFi network.”
          type: string
        emailSubmit:
          description: Label for confirmation code submit button using email auth
          type: string
        emailTitle:
          description: “Sign in with Email”
          type: string
        field1:
          description: whether to ask field1
          type: boolean
        field1Error:
          description: error message when field1 not provided
          type: string
        field1Label:
          description: label of field1
          type: string
        field1Required:
          description: whether field1 is required field
          type: boolean
        field2:
          description: whether to ask field2
          type: boolean
        field2Error:
          description: error message when field2 not provided
          type: string
        field2Label:
          description: label of field2
          type: string
        field2Required:
          description: whether field2 is required field
          type: boolean
        field3:
          description: whether to ask field3
          type: boolean
        field3Error:
          description: error message when field3 not provided
          type: string
        field3Label:
          description: label of field3
          type: string
        field3Required:
          description: whether field3 is required field
          type: boolean
        field4:
          description: whether to ask field4
          type: boolean
        field4Error:
          description: error message when field4 not provided
          type: string
        field4Label:
          description: label of field4
          type: string
        field4Required:
          description: whether field4 is required field
          type: boolean
        message:
          description: “Please enjoy the complimentary Wifi”
          type: string
        name:
          default: false
          description: whether name field is required
          type: boolean
        nameError:
          description: error message when name not provided
          type: string
        nameLabel:
          description: label of name field
          type: string
        optout:
          description: whether to display “Do Not Store My Personal Information”
          type: boolean
        optoutLabel:
          description: label for “Do Not Store My Personal Information”
          type: string
        pageTitle:
          description: “Welcome”
          type: string
        passphraseCancel:
          description: “Cancel”
          type: string
        passphraseError:
          description: error message when invalid passphrase is provided
          type: string
        passphraseLabel:
          description: Passphrase
          type: string
        passphraseMessage:
          description: “Login using passphrase”
          type: string
        passphraseSubmit:
          description: “Sign in”
          type: string
        passphraseTitle:
          description: Title for passphrase details page
          type: string
        poweredBy:
          default: true
          description: whether to show “Powered by Mist”
          type: boolean
        requiredFieldLabel:
          description: label to denote required field
          type: string
        signInLabel:
          description: label of the button to /signin
          type: string
        smsCarrierDefault:
          description: “Please Select”
          type: string
        smsCarrierError:
          description: “Please select a mobile carrier”
          type: string
        smsCarrierFieldLabel:
          description: label for mobile carrier drop-down list
          type: string
        smsCodeCancel:
          description: Label for cancel confirmation code submission
          type: string
        smsCodeError:
          description: error message when confirmation code is invalid
          type: string
        smsCodeFieldLabel:
          description: “Confirmation Code”
          type: string
        smsCodeMessage:
          description: “Enter the confirmation code”
          type: string
        smsCodeSubmit:
          description: Label for confirmation code submit button
          type: string
        smsCodeTitle:
          description: “Access Code”
          type: string
        smsCountryFieldLabel:
          description: “Country Code”
          type: string
        smsCountryFormat:
          description: “+1”
          type: string
        smsHaveAccessCode:
          description: Label for checkbox to specify that the user has access code
          type: string
        smsMessageFormat:
          description: format of access code sms message. {{code}} and {{duration}} are place holders and should be retained as is.
          type: string
        smsNumberCancel:
          description: label for canceling mobile details for SMS auth
          type: string
        smsNumberError:
          description: “Invalid Mobile Number”
          type: string
        smsNumberFieldLabel:
          description: label for field to provide mobile number
          type: string
        smsNumberFormat:
          description: “2125551212 (digits only)”
          type: string
        smsNumberMessage:
          description: “We will send an access code to your mobile number which you can use to connect to the WiFi network. Message and data rates may apply.”
          type: string
        smsNumberSubmit:
          description: label for submit button for code generation
          type: string
        smsNumberTitle:
          description: Title for phone number details
          type: string
        smsUsernameFormat:
          description: “username”
          type: string
        smsValidityDuration:
          description: how long confirmation code should be considered valid (in minutes)
          type: integer
        sponsorBackLink:
          description: “Go back and edit request form”
          type: string
        sponsorCancel:
          description: “Cancel”
          type: string
        sponsorEmail:
          description: label for Sponsor Email
          type: string
        sponsorEmailError:
          description: “Please provide valid sponsor email”
          type: string
        sponsorEmailTemplate:
          description: |
            html template to replace/override default sponsor email template

            Sponsor Email Template supports following template variables: 
             * `approve_url`: Renders URL to approve the request; optionally &minutes=N query param can be appended to change the Authorization period of the guest, where N is a valid integer denoting number of minutes a guest remains authorized
             * `deny_url`: Renders URL to reject the request
             * `guest_email`: Renders Email ID of the guest
             * `guest_name`: Renders Name of the guest
             * `field1`: Renders value of the Custom Field 1
             * `field2`: Renders value of the Custom Field 2
             * `sponsor_link_validity_duration`: Renders validity time of the request (i.e. Approve/Deny URL)
             * `auth_expire_minutes`: Renders Wlan-level configured Guest Authorization Expiration time period (in minutes), If not configured then default (1 day in minutes)
          type: string
        sponsorInfoApproved:
          description: “Your request was approved by”
          type: string
        sponsorInfoDenied:
          description: “Your request was denied by”
          type: string
        sponsorInfoPending:
          description: “Your notification has been sent to”
          type: string
        sponsorName:
          description: label for Sponsor Name
          type: string
        sponsorNameError:
          description: “Please provide sponsor’s name”
          type: string
        sponsorNotePending:
          description: “Please wait for them to acknowledge.”
          type: string
        sponsorRequestAccess:
          description: ‘submit button label request Wifi Access and notify sponsor about guest request
          type: string
        sponsorSelectEmail:
          description: “Select Sponsor”
          type: string
        sponsorStatusApproved:
          description: text to display if sponsor approves request
          type: string
        sponsorStatusDenied:
          description: text to display when sponsor denies request
          type: string
        sponsorStatusPending:
          description: text to display if request is still pending
          type: string
        sponsorSubmit:
          description: submit button label to notify sponsor about guest request
          type: string
        sponsorsError:
          description: “Please select a sponsor”
          type: string
        sponsorsInfoApproved:
          description: “Your request was approved”
          type: string
        sponsorsInfoDenied:
          description: “Your request was denied”
          type: string
        sponsorsInfoPending:
          description: “Your notification has been sent to the sponsors”
          type: string
        tos:
          default: true
          type: boolean
        tosAcceptLabel:
          description: prefix of the label of the link to go to /tos
          type: string
        tosError:
          description: error message when tos not accepted
          type: string
        tosLink:
          description: label of the link to go to /tos
          type: string
        tosText:
          description: text of the Terms of Service
          type: string
      required:
        - pageTitle
      type: object
      x-examples:
        example-1:
          accessCodeAlternateEmail: string
          alignment: string
          authButtonAmazon: string
          authButtonAzure: string
          authButtonEmail: string
          authButtonFacebook: string
          authButtonGoogle: string
          authButtonMicrosoft: string
          authButtonPassphrase: string
          authButtonSms: string
          authButtonSponsor: string
          authLabel: string
          backLink: string
          color: string
          colorDark: string
          colorLight: string
          company: true
          companyError: string
          companyLabel: string
          email: true
          emailAccessDomainError: string
          emailCancel: string
          emailCodeError: string
          emailError: string
          emailFieldLabel: string
          emailLabel: string
          emailMessage: string
          emailSubmit: string
          emailTitle: string
          field1: true
          field1Error: string
          field1Label: string
          field1Required: true
          field2: true
          field2Error: string
          field2Label: string
          field2Required: true
          field3: true
          field3Error: string
          field3Label: string
          field3Required: true
          field4: true
          field4Error: string
          field4Label: string
          field4Required: true
          message: string
          name: true
          nameError: string
          nameLabel: string
          optout: true
          optoutLabel: string
          pageTitle: string
          passphraseCancel: string
          passphraseError: string
          passphraseLabel: string
          passphraseMessage: string
          passphraseSubmit: string
          passphraseTitle: string
          poweredBy: true
          requiredFieldLabel: string
          signInLabel: string
          smsCarrierDefault: string
          smsCarrierError: string
          smsCarrierFieldLabel: string
          smsCodeCancel: string
          smsCodeError: string
          smsCodeFieldLabel: string
          smsCodeMessage: string
          smsCodeSubmit: string
          smsCodeTitle: string
          smsCountryFieldLabel: string
          smsCountryFormat: string
          smsHaveAccessCode: string
          smsMessageFormat: string
          smsNumberCancel: string
          smsNumberError: string
          smsNumberFieldLabel: string
          smsNumberFormat: string
          smsNumberMessage: string
          smsNumberSubmit: string
          smsNumberTitle: string
          smsUsernameFormat: string
          smsValidityDuration: 0
          sponsorBackLink: string
          sponsorCancel: string
          sponsorEmail: string
          sponsorEmailError: string
          sponsorEmailTemplate: string
          sponsorInfoApproved: string
          sponsorInfoDenied: string
          sponsorInfoPending: string
          sponsorName: string
          sponsorNameError: string
          sponsorNotePending: string
          sponsorStatusApproved: string
          sponsorStatusDenied: string
          sponsorStatusPending: string
          sponsorSubmit: string
          tos: true
          tosAcceptLabel: string
          tosError: string
          tosLink: string
          tosText: string
        example-2:
          accessCodeAlternateEmail: Use alternate email address
          alignment: left
          authButtonAmazon: Sign in with Amazon
          authButtonAzure: Sign in with Azure
          authButtonEmail: Sign in with Email
          authButtonFacebook: Sign in with Facebook
          authButtonGoogle: Sign in with Google
          authButtonMicrosoft: Sign in with Microsoft
          authButtonPassphrase: Sign in with Passphrase
          authButtonSms: Sign in with Text Message
          authButtonSponsor: Sign in as Guest
          authLabel: Connect to WIFI with
          backLink: Back to Sign In
          color: "#1074bc"
          colorDark: "#0b5183"
          colorLight: "#3589c6"
          company: true
          companyError: Please provide company name
          companyLabel: Company
          email: true
          emailAccessDomainError: Access is restricted by email domain
          emailCancel: Cancel
          emailCodeError: Please provide valid alternate email
          emailError: Please provide valid email
          emailFieldLabel: Enter your email address
          emailLabel: Email
          emailMessage: We will email you an authentication code which you can use to connect to the WiFi network.
          emailSubmit: Send Access Code
          emailTitle: Sign in with Email
          field1: true
          field1Error: Please provide field1
          field1Label: Custom1
          field1Required: true
          field2: true
          field2Error: Please provide field2
          field2Label: Custom1
          field2Required: false
          field3: true
          field3Error: Please provide field3
          field3Label: Custom1
          field3Required: false
          field4: true
          field4Error: Please provide field4
          field4Label: Custom1
          field4Required: false
          message: Please enjoy the complimentary Wifi
          name: true
          nameError: Please provide your name
          nameLabel: Name
          optout: false
          optoutLabel: Do not store
          pageTitle: Welcome
          passphraseCancel: Cancel
          passphraseError: Invalid Passphrase
          passphraseLabel: Passphrase
          passphraseMessage: Enter the secret passphrase to access the WiFi network.
          passphraseSubmit: Sign In
          passphraseTitle: Sign in with Passphrase
          poweredBy: true
          requiredFieldLabel: required
          signInLabel: Sign In
          smsCarrierDefault: Please Select
          smsCarrierError: Please select a mobile carrier
          smsCarrierFieldLabel: Mobile Carrier
          smsCodeCancel: Cancel
          smsCodeError: Invalid Access Code
          smsCodeFieldLabel: Confirmation Code
          smsCodeMessage: Enter the confirmation code
          smsCodeSubmit: Sumbit Code
          smsCodeTitle: Access Code
          smsCountryFieldLabel: Country Code
          smsCountryFormat: "+1"
          smsHaveAccessCode: I have an access code
          smsMessageFormat: Code {{code}} expires in {{duration}} minutes.
          smsNumberCancel: Cancel
          smsNumberError: Invalid Mobile Number
          smsNumberFieldLabel: Mobile Number
          smsNumberFormat: 2125551212 (digits only)
          smsNumberMessage: We will send an access code to your mobile number which you can use to connect to the WiFi network. Message and data rates may apply.
          smsNumberSubmit: Sign In
          smsNumberTitle: Text Message Confirmation
          smsUsernameFormat: username
          smsValidityDuration: 5
          sponsorBackLink: Go back and edit request form
          sponsorCancel: Cancel
          sponsorEmail: Sponsor Email
          sponsorEmailError: Please provide valid sponsor email
          sponsorEmailTemplate: <html template to replace/override default sponsor email template>
          sponsorInfoApproved: Your request was approved by
          sponsorInfoDenied: Your request was denied by
          sponsorInfoPending: Your notification has been sent to
          sponsorName: Sponsor Name
          sponsorNameError: Please provide sponsor name
          sponsorNotePending: Please wait for them to acknowledge.
          sponsorStatusApproved: Your request was approved
          sponsorStatusDenied: Your request was denied
          sponsorStatusPending: Notification Sent
          sponsorSubmit: Notify Sponsor
          tos: true
          tosAcceptLabel: I accept the Terms of Service
          tosError: Please review and accept terms of service
          tosLink: Terms of Service
          tosText: terms of service
    wxlan_rule:
      description: WXlan
      properties:
        action:
          description: type of action, allow / block
          enum:
            - allow
            - block
          type: string
        blocked_apps:
          description: blocked apps (always blocking, ignoring action), the key of Get Application List
          items:
            type: string
          type: array
        created_time:
          readOnly: true
          type: number
        dst_allow_wxtags:
          description: tag list to indicate these tags are allowed access
          items:
            type: string
          type: array
        dst_deny_wxtags:
          description: tag list to indicate these tags are blocked access
          items:
            type: string
          type: array
        enabled:
          default: true
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        modified_time:
          readOnly: true
          type: number
        order:
          description: the order how rules would be looked up, > 0 and bigger order got matched first, -1 means LAST, uniqueness not checked
          type: number
        org_id:
          format: uuid
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        src_wxtags:
          description: tag list to determine if this rule would match
          items:
            type: string
          type: array
      required:
        - order
        - src_wxtags
      type: object
    wxlan_tag:
      description: |-
        WxLAN Tag
        * type:
        ** client: created manually (e.g. on wireless client table, when they spot a device of interest, they can create an wxlan tag for it
        ** resource: created automatically when we discover a network resource
        ** subnet: create automatically when a subnet is discovered

        * match:
        ** wlan_id, ap_id: values are a list of Wlan / Device ids
        ** client_mac: values are a list of MAC addresses

        * radius_group: this is a smart tag that matches RADIUS-Filter-ID, Airespace-ACL-Name (VendorID=14179, VendorType=6) / Aruba-User-Role (VendorID=14823, VendorType=1)
        * radius_username: this matches the ATTR-User-Name(1)
        * radius_class: thie matches the ATTR-Class(25)
        * radius_attr: the values are [ “6=1”, “26=10.2.3.4” ], this support other RADIUS attributes where we know the type
        * radius_vendor: the values are [ “14179.10=1”, “14178.16=1.2.3.4” ], this matches vendor attributes and will be dynamically evaluated
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        last_ips:
          items:
            type: string
          type: array
        mac:
          nullable: true
          type: string
        match:
          enum:
            - ap_id
            - app
            - asset_mac
            - client_mac
            - hostname
            - ip_range_subnet
            - port
            - radius_attr
            - radius_group
            - radius_username
            - wlan_id
            - psk_name
            - psk_rule
          nullable: true
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: The name
          type: string
        op:
          default: in
          enum:
            - in
            - not_in
          type: string
        org_id:
          format: uuid
          readOnly: true
          type: string
        resource_mac:
          nullable: true
          type: string
        services:
          items:
            type: string
          type: array
        site_id:
          format: uuid
          readOnly: true
          type: string
        specs:
          items:
            properties:
              port_range:
                default: "0"
                description: matched dst port, "0" means any
                type: string
              protocol:
                default: any
                description: tcp / udp / icmp / gre / any / ":protocol_number", `protocol_number` is between 1-254
                type: string
              subnets:
                default:
                  - 0.0.0.0/0
                description: matched dst subnet
                items:
                  type: string
                type: array
            type: object
          type: array
        subnet:
          type: string
        type:
          enum:
            - match
            - client
            - resource
            - subnet
            - spec
          type: string
        values:
          description: list of values to match
          items:
            type: string
          type: array
      required:
        - type
        - name
      type: object
    wxlan_tunnel:
      description: WxLAn Tunnel
      properties:
        created_time:
          readOnly: true
          type: number
        dmvpn:
          description: Dynamic Multipoint VPN configurations
          properties:
            enabled:
              default: false
              description: whether DMVPN is enabled
              type: boolean
            holding_time:
              description: optional; the holding time for NHRP ‘registration requests’ and ‘resolution replies’ sent from the Mist AP (in seconds); default 600
              type: integer
            host_routes:
              description: optional; list of IPv4 DMVPN peer host ip-addresses to which traffic is forwarded
              items:
                type: string
              type: array
          type: object
        for_mgmt:
          default: false
          description: determined during creation time and cannot be toggled. A management tunnel cannot be used by wxlan rule or by wlan
          type: boolean
        for_site:
          readOnly: true
          type: boolean
        hello_interval:
          default: 60
          description: in seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by hello_retries.
          maximum: 300
          minimum: 1
          type: integer
        hello_retries:
          default: 7
          maximum: 30
          minimum: 2
          type: integer
        hostname:
          description: |-
            optional, overwrite the hostname in SCCRQ control message, default is “” or null, %H and %M can be used, which will be replace with corresponding values:
            * %H: name of the ap if provided (and will be stripped so it can be used for hostname) and fallbacks to MAC
            * %M: MAC (e.g. 5c5b350e0060)
          type: string
        id:
          format: uuid
          readOnly: true
          type: string
        ipsec:
          description: IPSec-related configurations; requires DMVPN be enabled
          properties:
            enabled:
              default: false
              description: whether ipsec is enabled, requires DMVPN be enabled
              type: boolean
            psk:
              description: ipsec pre-shared key
              type: string
          required:
            - psk
          type: object
        is_static:
          default: false
          description: whether it’s static/unmanaged (i.e. no control session). As the session configurations are not compatible, cannot be toggled.
          type: boolean
        modified_time:
          readOnly: true
          type: number
        mtu:
          default: 0
          description: 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
          maximum: 1500
          minimum: 0
          type: integer
        name:
          description: The name of the tunnel
          type: string
        org_id:
          format: uuid
          type: string
        peers:
          description: list of remote peers’ IP or hostname
          items:
            type: string
          type: array
        router_id:
          description: optional, overwrite the router-id in SCCRQ control message, default is “0” or null, can also be an IPv4 address
          type: string
        secret:
          description: secret, ‘’ if no auth is used
          type: string
        sessions:
          description: sessions to be established with the tunnel. Has to be >= 1 in order for this tunnel to be useful. For management tunnel, it can only have 1
          items:
            properties:
              ap_as_session_id:
                description: if `use_ap_as_session_ids`==`true`, only apmac is supported right now. This is the name WLAN should use for wxtunnel_remote_id
                type: string
              comment:
                description: optional, user-specified string for display purpose
                type: string
              enable_cookie:
                type: boolean
              ethertype:
                enum:
                  - ethernet
                  - vlan
                type: string
              local_session_id:
                description: 1-4294967295
                maximum: 4294967295
                minimum: 1
                type: integer
              pseudo_802.1ad_enabled:
                default: false
                description: optional. Enables the pseudo 802.1ad QinQ mode where the AP device drops the outer vlan tag (QinQ). This mode is useful when tunneling Mist AP’s to some aggregation routers.
                type: boolean
              remote_id:
                description: remote-id of the session, has to be unique in the same tunnel
                type: string
              remote_session_id:
                description: 1-4294967295
                maximum: 4294967295
                minimum: 1
                type: integer
              use_ap_as_session_ids:
                default: false
                description: whether to use AP (last 4 bytes of MAC currently) as session ids
                type: boolean
            type: object
          minItems: 1
          type: array
          uniqueItems: true
        site_id:
          format: uuid
          readOnly: true
          type: string
        udp_port:
          description: udp port if `use_udp`==`true`
          type: integer
        use_udp:
          default: false
          description: whether to use UDP instead of IP (proto=115, which is default of L2TPv3)
          type: boolean
      required:
        - name
      type: object
      x-examples:
        example-dynamic:
          for_mgmt: false
          hello_interval: 60
          hello_retries: 3
          hostname: ""
          is_static: false
          mtu: 0
          name: HQ
          peers:
            - 63.3.2.4
          router_id: "0"
          secret: secret used for tunnel
          sessions:
            - comment: something about this session
              ethertype: ethernet
              remote_id: vpn1
            - comment: a vlan'ed session
              ethertype: vlan
              remote_id: vpn1
            - comment: a vlan'ed session
              ethertype: vlan
              pseudo_8021ad_enabled: true
              remote_id: vpn1
          udp_port: 1701
          use_udp: true
        example-static_ap_as_session_ids:
          for_mgmt: false
          hello_interval: 60
          hello_retries: 3
          is_static: true
          mtu: 0
          name: HQ
          peers:
            - 63.3.2.4
          sessions:
            - ap_session_id: apmac
              comment: something about this session
              ethertype: ethernet
              use_ap_as_session_ids: true
          udp_port: 1701
          use_udp: true
        example-static_pseudo_802.1Q_ipsec:
          for_mgmt: false
          hello_interval: 60
          hello_retries: 3
          ipsec:
            enabled: true
            psk: cisco123
          is_static: true
          mtu: 0
          name: HQ
          peers:
            - 63.3.2.4
          sessions:
            - comment: something about this session
              ethertype: vlan
              local_session_id: 4000
              pseudo_8021ad_enabled: true
              remote_session_id: 3000
          udp_port: 1701
          use_udp: true
        example-static_session_id:
          for_mgmt: false
          hello_interval: 60
          hello_retries: 3
          is_static: true
          mtu: 0
          name: HQ
          peers:
            - 63.3.2.4
          sessions:
            - comment: something about this session
              enable_cookie: false
              ethertype: ethernet
              local_session_id: 4000
              remote_session_id: 3000
          udp_port: 1701
          use_udp: true
    zone:
      description: Zone
      properties:
        created_time:
          readOnly: true
          type: number
        for_site:
          readOnly: true
          type: boolean
        id:
          format: uuid
          readOnly: true
          type: string
        map_id:
          description: map where this zone is defined
          format: uuid
          type: string
        modified_time:
          readOnly: true
          type: number
        name:
          description: The name of the zone
          type: string
        org_id:
          format: uuid
          type: string
        site_id:
          format: uuid
          readOnly: true
          type: string
        vertices:
          description: vertices used to define an area. It’s assumed that the last point connects to the first point and forms an closed area
          items:
            properties:
              x:
                description: x in pixel
                type: number
              y:
                description: y in pixel
                type: number
            required:
              - x
              - y
            type: object
          type: array
          uniqueItems: true
      required:
        - name
        - map_id
        - vertices
      type: object
      x-examples:
        example-1:
          map_id: 63eda950-c6da-11e4-a628-60f81dd250cc
          name: Board Room
          vertices:
            - x: 1119
              y: 518
            - x: 1393
              y: 518
            - x: 1393
              y: 740
            - x: 1119
              y: 740
  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.

        **Format**:
          API Token value format is `Token {apitoken}`

        **Notes**:
        * an API token generated for a specific admin has the same privilege as the user
        * an API token will be automatically removed if not used for > 90 days
        * 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
x-tagGroups:
  - name: Account
    tags:
      - Login
      - Login With OAuth2
      - API Token
      - Self
  - name: Sites
    tags:
      - Sites
      - Sites Alarms
      - Sites Applications
      - Sites Anomaly
      - Sites Asset Filters
      - Sites Assets
      - Sites Beacons
      - Sites Calls
      - Sites Clients
      - Sites Devices
      - Sites Devices APs
      - Sites Devices Others
      - Sites Devices Switches
      - Sites Devices Switches Virtual Chassis
      - Sites Devices WAN Edges
      - Sites Devices WAN Edges HA
      - Sites Devices Upgrades
      - Sites Devices Utilities
      - Sites Devices Stats
      - Sites Events
      - Sites EVPN Topologies
      - Sites Guests
      - Sites Insights
      - Sites Licenses
      - Sites Location
      - Sites Maps
      - Sites Maps Auto-orientation
      - Sites Maps Auto-placement
      - Sites MxEdges
      - Sites MxTunnels
      - Sites Pcaps
      - Sites Psks
      - Sites Rfdiags
      - Sites Rogues
      - Sites RRM
      - Sites Rssizones
      - Sites Setting
      - Sites Skyatp
      - Sites SLEs
      - Sites Stats
      - Sites Subscriptions
      - Sites Synthetic Tests
      - Sites UI Settings
      - Sites vBeacons
      - Sites Webhooks
      - Sites Wired Clients
      - Sites Wlans
      - Sites WxRules
      - Sites WxTags
      - Sites WxTunnels
      - Sites Zones
  - name: Orgs
    tags:
      - Orgs
      - Orgs 128T
      - Orgs Admins
      - Orgs Alarms
      - Orgs Alarm Templates
      - Orgs AP Templates
      - Orgs API Tokens
      - Orgs Assets
      - Orgs Asset Filters
      - Orgs Calls
      - Orgs Cert
      - Orgs Clients
      - Orgs CRL
      - Orgs Devices
      - Orgs Devices Others
      - Orgs Devices Stats
      - Orgs Devices Upgrades
      - Orgs Devices Zscaler
      - Orgs Device Profiles
      - Orgs EVPN Topologies
      - Orgs Gateway Templates
      - Orgs Guests
      - Orgs Inventory
      - Orgs Invites
      - Orgs JSI
      - Orgs Licenses
      - Orgs Logs
      - Orgs Maps
      - Orgs Marvis
      - Orgs MxClusters
      - Orgs MxEdges
      - Orgs MxTunnels
      - Orgs NAC Rules
      - Orgs NAC Tags
      - Orgs Network Templates
      - Orgs Networks
      - Orgs OAuth
      - Orgs Premium Analytics
      - Orgs Psks
      - Orgs Psk Portals
      - Orgs RF Templates
      - Orgs SDK Clients
      - Orgs SDK Invites
      - Orgs SDK Templates
      - Orgs SecPolicies
      - Orgs Services
      - Orgs Service Policies
      - Orgs Setting
      - Orgs Sitegroups
      - Orgs Sites
      - Orgs Site Templates
      - Orgs SLEs
      - Orgs SSO Roles
      - Orgs SSO
      - Orgs Stats
      - Orgs Stats Tunnels
      - Orgs Subscriptions
      - Orgs Templates
      - Orgs Tickets
      - Orgs VPNs
      - Orgs Webhooks
      - Orgs Wlans
      - Orgs WxRules
      - Orgs WxTags
      - Orgs WxTunnels
  - name: MSPs
    tags:
      - Msps
      - Msps Admins
      - Msps Inventory
      - Msps Logo
      - Msps Invites
      - Msps Logs
      - Msps Licenses
      - Msps Org Groups
      - Msps Orgs
      - Msps Search
      - Msps SLEs
      - Msps SSO Roles
      - Msps SSO
      - Msps Stats
      - Msps Tickets
  - name: Installer
    tags:
      - Installer
  - name: Webhook Samples
    tags:
      - Webhook Samples
  - name: Constants
    tags:
      - Constants
  - name: Others
    tags:
      - Admin
      - Mobile
