Juniper Mist AI Sites Devices API

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

OpenAPI Specification

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

    >

    > Date: **May 13, 2026**

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


    ---

    ## Additional Documentation

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

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

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


    ## Helpful Resources

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

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

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

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

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


    ## Mist Web Browser Extension:

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

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


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Admins Sites Devices API
  version: 2604.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: '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
paths:
  /api/v1/sites/{site_id}/devices:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get list of devices on the site.
      operationId: listSiteDevices
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_with_all'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/DevicesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/config_history/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    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/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceConfigHistory
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/config_history/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search for entries in device config history
      operationId: searchSiteDeviceConfigHistory
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - 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'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/ConfigsHistorySearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceConfigHistory
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    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:
          $ref: '#/components/schemas/site_devices_count_distinct'
      - 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/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/events/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    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:
          $ref: '#/components/schemas/site_device_events_count_distinct'
      - in: query
        name: model
        schema:
          type: string
      - $ref: '#/components/parameters/device_event_type'
      - in: query
        name: type_code
        schema:
          type: string
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceEvents
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/events/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search Devices Events
      operationId: searchSiteDeviceEvents
      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
      - $ref: '#/components/parameters/device_event_type'
      - description: Return last/recent event for passed in field
        example: port_id
        in: query
        name: last_by
        schema:
          type: string
      - description: Keyword to include events from additional indices (e.g. ext_tunnel for prisma events)
        in: query
        name: includes
        schema:
          examples:
          - ext_tunnel
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/EventsDevices'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceEvents
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/export:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: To download the exported device information
      operationId: exportSiteDevices
      responses:
        '200':
          $ref: '#/components/responses/File'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: exportSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/gbp_tag:
    parameters:
    - $ref: '#/components/parameters/site_id'
    post:
      description: Set GBP Tag for multiple devices
      operationId: setSiteDevicesGbpTag
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/devices_gbp_tag'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: setSiteDevicesGbpTag
      tags:
      - Sites Devices
  /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:
            schema:
              $ref: '#/components/schemas/ap_import_json'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/binary_stream'
      responses:
        '200':
          $ref: '#/components/responses/DevicesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: importSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/last_config/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    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:
          $ref: '#/components/schemas/site_device_last_config_count_distinct'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceLastConfig
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/last_config/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search Device Last Configs
      operationId: searchSiteDeviceLastConfigs
      parameters:
      - description: 'Duration for expiring cert queries (format: 2d/3h/172800 seconds)'
        in: query
        name: cert_expiry_duration
        schema:
          examples:
          - 2d
          type: string
      - in: query
        name: device_type
        schema:
          $ref: '#/components/schemas/last_config_device_type'
      - 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'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/ConfigsHistorySearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceLastConfigs
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search Device
      operationId: searchSiteDevices
      parameters:
      - description: When `type`==`ap`, Channel of band_24
        in: query
        name: band_24_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Channel of band_5
        in: query
        name: band_5_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Channel of band_6
        in: query
        name: band_6_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_24
        in: query
        name: band_24_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_5
        in: query
        name: band_5_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_6
        in: query
        name: band_6_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_24
        in: query
        name: band_24_power
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_5
        in: query
        name: band_5_power
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_6
        in: query
        name: band_6_power
        schema:
          type: integer
      - description: When `type`==`gateway`, true / false
        in: query
        name: clustered
        schema:
          type: boolean
      - description: When `type`==`ap`, Port speed of eth0
        in: query
        name: eth0_port_speed
        schema:
          examples:
          - 100
          - 1000
          type: integer
      - description: When `type`==`switch`, EVPN topology id
        in: query
        name: evpntopo_id
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/partial_filter_ext_ip'
      - $ref: '#/components/parameters/partial_filter_hostname_device'
      - $ref: '#/components/parameters/partial_filter_ip_device'
      - description: When `type`==`switch` or `type`==`gateway`, last configuration status
        in: query
        name: last_config_status
        schema:
          examples:
          - success
          type: string
      - description: Last hostname of the device.
        in: query
        name: last_hostname
        schema:
          type: string
      - description: When `type`==`ap`, LLDP management ip address
        in: query
        name: lldp_mgmt_addr
        schema:
          type: string
      - $ref: '#/components/parameters/partial_filter_lldp_port_id'
      - $ref: '#/components/parameters/partial_filter_lldp_system_desc'
      - $ref: '#/components/parameters/partial_filter_lldp_system_name'
      - $ref: '#/components/parameters/partial_filter_mac_device'
      - $ref: '#/components/parameters/partial_filter_model'
      - description: When `type`==`ap`, Mist Edge id, if AP is connecting to a Mist Edge
        in: query
        name: mxedge_id
        schema:
          format: uuid
          type: string
      - description: When `type`==`ap`, Comma separated list of Mist Edge id, if AP is connecting to a Mist Edge
        in: query
        name: mxedge_ids
        schema:
          type: string
      - description: When `type`==`ap`, MxTunnel status, up / down.
        in: query
        name: mxtunnel_status
        schema:
          $ref: '#/components/schemas/search_site_devices_mxtunnel_status'
      - description: 'When `type`==`gateway`. enum: `node0`, `node1`'
        in: query
        name: node
        schema:
          $ref: '#/components/schemas/ha_cluster_node_enum'
      - description: When `type`==`gateway`, node0 MAC Address
        in: query
        name: node0_mac
        schema:
          type: string
      - description: When `type`==`gateway`, node1 MAC Address
        in: query
        name: node1_mac
        schema:
          type: string
      - description: When `type`==`ap`, whether the AP is power constrained
        in: query
        name: power_constrained
        schema:
          type: boolean
      - description: "When `type`==`switch` or `type`==`gateway`, Key-value pairs where the key\nis the RADIUS server address and the value contains authentication statistics:\n  * <server_address> (string): IP address of the RADIUS server as the key\n  * `auth_accepts` (long): Number of accepted authentication requests\n  * `auth_rejects` (long): Number of rejected authentication requests\n  * `auth_timeouts` (long): Number of authentication timeouts\n  * `auth_server_status` (string): Status of the server. Possible values: `up`, `down`, `unreachable`"
        in: query
        name: radius_stats
        schema:
          type: string
      - description: Whether to return device stats
        in: query
        name: stats
        schema:
          default: false
          type: boolean
      - description: When `type`==`gateway` (SSR only), version of 128T agent
        in: query
        name: t128agent_version
        schema:
          type: string
      - $ref: '#/components/parameters/device_type'
      - description: Version
        in: query
        name: version
        schema:
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - description: Sort options
        in: query
        name: sort
        schema:
          $ref: '#/components/schemas/search_site_devices_sort'
      - description: Sort options in reverse order
        in: query
        name: desc_sort
        schema:
          $ref: '#/components/schemas/search_site_devices_desc_sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/DevicesSearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/{device_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    get:
      description: Get Device Configuration
      operationId: getSiteDevice
      responses:
        '200':
          $ref: '#/components/responses/Device'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteDevice
      tags:
      - Sites Devices
    put:
      description: Update Device Configuration
      operationId: updateSiteDevice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mist_device'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Device'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateSiteDevice
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/{device_id}/image/{image_number}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    - in: path
      name: image_number
      required: true
      schema:
        type: integer
    delete:
      description: Delete image from a device
      operationId: deleteSiteDeviceImage
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteDeviceImage
      tags:
      - Sites Devices
    post:
      description: Attach up to 3 images to a device
      operationId: addSiteDeviceImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/image_import'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: addSiteDeviceImage
      tags:
      - Sites Devices
components:
  schemas:
    protect_re_custom_protocol:
      default: any
      description: 'enum: `any`, `icmp`, `tcp`, `udp`'
      enum:
      - any
      - icmp
      - tcp
      - udp
      type: string
    switch_port_local_usage_dynamic_vlan_networks:
      description: Only if `port_auth`==`dot1x`, if dynamic vlan is used, specify the possible networks/vlans RADIUS can return
      examples:
      - - corp
        - user
      items:
        type: string
      type: array
    service_policy_ewf_rule_profile:
      default: strict
      description: 'enum: `critical`, `standard`, `strict`'
      enum:
      - critical
      - standard
      - strict
      type: string
    strings:
      items:
        type: string
      type: array
      uniqueItems: true
    mist_device:
      discriminator:
        mapping:
          ap: '#/components/schemas/device_ap'
          gateway: '#/components/schemas/device_gateway'
          switch: '#/components/schemas/device_switch'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/device_ap'
      - $ref: '#/components/schemas/device_switch'
      - $ref: '#/components/schemas/device_gateway'
    network_internal_access:
      additionalProperties: false
      properties:
        enabled:
          type: boolean
      type: object
    app_probing_apps:
      description: APp-keys from [List Applications](/#operations/listApplications)
      examples:
      - - facebook
      items:
        type: string
      type: array
    app_probing_custom_app:
      additionalProperties: false
      properties:
        address:
          description: Required if `protocol`==`icmp`
          examples:
          - 192.168.1.1
          type: string
        app_type:
          type: string
        hostnames:
          $ref: '#/components/schemas/app_probing_custom_app_hostname'
        key:
          type: string
        name:
          examples:
          - pos_app
          type: string
        network:
          examples:
          - lan
          type: string
        packetSize:
          description: If `protocol`==`icmp`
          maximum: 65400
          minimum: 0
          type: integer
        protocol:
          $ref: '#/components/schemas/app_probing_custom_app_protocol'
        url:
          description: If `protocol`==`http`
          examples:
          - www.abc.com
          type: string
        vrf:
          examples:
          - lan
          type: string
      type: object
    tunnel_config_node_remote_ids:
      description: Only if `provider`==`jse-ipsec` or `provider`==`custom-ipsec`
      items:
        type: string
      type: array
    network_internet_access:
      additionalProperties: false
      description: Whether this network has direct internet access
      properties:
        create_simple_service_policy:
          default: false
          type: boolean
        destination_nat:
          $ref: '#/components/schemas/network_internet_access_destination_nat'
        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:
          $ref: '#/components/schemas/network_internet_access_static_nat'
      type: object
    gw_routing_policy_term:
      additionalProperties: false
      properties:
        actions:
          $ref: '#/components/schemas/gw_routing_policy_term_action'
        matching:
          $ref: '#/components/schemas/gw_routing_policy_term_matching'
      type: object
    service_policy_secintel_profile:
      default: default
      description: 'enum: `default`, `standard`, `strict`'
      enum:
      - default
      - standard
      - strict
      type: string
    gateway_extra_route6:
      additionalProperties: false
      properties:
        via:
          format: ipv6
          type: string
      type: object
    switch_bgp_config_networks:
      description: List of network names for BGP configuration. When a network is specified, a BGP group will be added to the VRF that network is part of.
      items:
        type: string
      type: array
    tunnel_config:
      additionalProperties: false
      properties:
        auto_provision:
          $ref: '#/components/schemas/tunnel_config_auto_provision'
        ike_lifetime:
          description: Only if `provider`==`custom-ipsec`
          type: integer
        ike_mode:
          $ref: '#/components/schemas/tunnel_config_ike_mode'
        ike_proposals:
          $ref: '#/components/schemas/tunnel_config_ike_proposals'
        ipsec_lifetime:
          description: If `provider`==`custom-ipsec`
          type: integer
        ipsec_proposals:
          $ref: '#/components/schemas/tunnel_config_ipsec_proposals'
        local_id:
          description: Required if `provider`==`zscaler-ipsec`, `provider`==`jse-ipsec` or `provider`==`custom-ipsec`
          type: string
        local_subnets:
          $ref: '#/components/schemas/tunnel_config_local_subnets'
        mode:
          $ref: '#/components/schemas/tunnel_config_tunnel_mode'
        networks:
          $ref: '#/components/schemas/tunnel_config_networks'
        primary:
          $ref: '#/components/schemas/tunnel_config_node'
        probe:
          $ref: '#/components/schemas/tunnel_config_probe'
        protocol:
          $ref: '#/components/schemas/tunnel_config_protocol'
        provider:
          $ref: '#/components/schemas/tunnel_config_provider'
        psk:
          description: Required if `provider`==`zscaler-ipsec`, `provider`==`jse-ipsec` or `provider`==`custom-ipsec`
          type: string
        remote_subnets:
          $ref: '#/components/schemas/tunnel_config_remote_subnets'
        secondary:
          $ref: '#/components/schemas/tunnel_config_node'
        version:
          $ref: '#/components/schemas/tunnel_config_version'
      type: object
    sw_routing_policy_term_matching:
      additionalProperties: false
      description: zero or more criteria/filter can be specified to match the term, all criteria have to be met
      properties:
        as_path:
          $ref: '#/componen

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