Juniper Mist AI Orgs Wlans API

An Org Wlan is a wireless local area network that is configured at the Org level and applied to a WLAN template. It allows for the creation and management of wireless network settings, such as SSIDs (service set identifiers), authentication settings, VLAN configurations, etc... Org WLANs are created and managed at the org level and can only be referenced and used within the WLAN Templates.

Operations 8

GET /api/v1/orgs/{org_id}/wlans listOrgWlans #
POST /api/v1/orgs/{org_id}/wlans createOrgWlan #
DELETE /api/v1/orgs/{org_id}/wlans/{wlan_id} deleteOrgWlan #
GET /api/v1/orgs/{org_id}/wlans/{wlan_id} getOrgWLAN #
PUT /api/v1/orgs/{org_id}/wlans/{wlan_id} updateOrgWlan #
DELETE /api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_image deleteOrgWlanPortalImage #
POST /api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_image uploadOrgWlanPortalImage #
PUT /api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_template updateOrgWlanPortalTemplate #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mist-ai-orgs-wlans-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mist-ai-orgs-wlans-api-openapi.yml Raw ↑
openapi: 3.2.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 Orgs Wlans 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: 'An Org Wlan is a wireless local area network that is configured at the Org level and applied to a WLAN template.


    It allows for the creation and management of wireless network settings, such as SSIDs (service set identifiers), authentication settings, VLAN configurations, etc...


    Org WLANs are created and managed at the org level and can only be referenced and used within the WLAN Templates.'
  name: Orgs Wlans
paths:
  /api/v1/orgs/{org_id}/wlans:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org Wlans
      operationId: listOrgWlans
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/WlansArray'
        '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: listOrgWlans
      tags:
      - Orgs Wlans
    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':
          $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: createOrgWlan
      tags:
      - Orgs Wlans
  /api/v1/orgs/{org_id}/wlans/{wlan_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/wlan_id'
    delete:
      description: Delete Org WLAN
      operationId: deleteOrgWlan
      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: deleteOrgWlan
      tags:
      - Orgs Wlans
    get:
      description: Get Org Wlan Detail
      operationId: getOrgWLAN
      responses:
        '200':
          $ref: '#/components/responses/Wlan'
        '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: getOrgWLAN
      tags:
      - Orgs Wlans
    put:
      description: Update Org Wlan
      operationId: updateOrgWlan
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  allow_ipv6_ndp: true
                  allow_mdns: false
                  allow_ssdp: false
                  arp_filter: false
                  band_steer: false
                  band_steer_force_band5: false
                  bands:
                  - '24'
                  - '5'
                  block_blacklist_clients: false
                  bonjour:
                    additional_vlan_ids: 10,20
                    enabled: false
                    services:
                      airplay:
                        radius_groups:
                        - teachers
                        scope: same_ap
                  client_limit_down: 1000
                  client_limit_down_enabled: false
                  client_limit_up: 512
                  client_limit_up_enabled: false
                  disable_11ax: false
                  disable_ht_vht_rates: false
                  disable_uapsd: false
                  disable_v1_roam_notify: false
                  disable_v2_roam_notify: false
                  disable_wmm: false
                  dynamic_vlan:
                    default_vlan_id: 999
                    enabled: false
                    local_vlan_ids:
                    - 1
                    type: airespace-interface-name
                    vlans:
                      '131': default
                      '322': fast,video
                  enable_local_keycaching: false
                  enable_wireless_bridging: false
                  enabled: true
                  fast_dot1x_timers: false
                  hide_ssid: false
                  hostname_ie: false
                  ssid: demo
            schema:
              $ref: '#/components/schemas/wlan'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Wlan'
        '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: updateOrgWlan
      tags:
      - Orgs Wlans
  /api/v1/orgs/{org_id}/wlans/{wlan_id}/portal_image:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/wlan_id'
    delete:
      description: Delete Org WLAN Portal Image
      operationId: deleteOrgWlanPortalImage
      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: deleteOrgWlanPortalImage
      tags:
      - Orgs Wlans
    post:
      description: Upload Org WLAN Portal Image
      operationId: uploadOrgWlanPortalImage
      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: 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 a Portal Template


        #### Sponsor Email Template

        Sponsor Email Template supports following template variables:


        | **Name** | **Description** |

        | --- | --- |

        | 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 |

        | company | Renders value of the Company field |

        | 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) |'
      operationId: updateOrgWlanPortalTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/wlan_portal_template'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Portaltemplate'
        '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: updateOrgWlanPortalTemplate
      tags:
      - Orgs Wlans
components:
  schemas:
    wlan_dynamic_vlan_type:
      default: standard
      description: 'standard (using Tunnel-Private-Group-ID, widely supported), airespace-interface-name (Airespace/Cisco). enum: `airespace-interface-name`, `standard`'
      enum:
      - airespace-interface-name
      - standard
      examples:
      - airespace-interface-name
      type: string
    radius_acct_port:
      anyOf:
      - maximum: 65545
        minimum: 1
        type: integer
      - type: string
      description: Radius Auth Port, value from 1 to 65535, default is 1813
    wlan_cisco_cwa_allowed_hostnames:
      description: List of hostnames without http(s):// (matched by substring)
      items:
        examples:
        - snapchat.com
        type: string
      type: array
    wlan_portal_denied_hostnames:
      default: []
      description: List of hostnames without http(s):// (matched by substring), this takes precedence over portal_allowed_hostnames
      examples:
      - - msg.snapchat.com
      items:
        type: string
      type: array
    org_id:
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    wlan_vlan_ids_list:
      description: If `vlan_enabled`==`true` and `vlan_pooling`==`true`. List of VLAN IDs (comma separated) to be used in the VLAN Pool
      examples:
      - - 3
        - 4
        - 5
      items:
        $ref: '#/components/schemas/vlan_id_with_variable'
      type: array
    radius_acct_server:
      additionalProperties: false
      properties:
        host:
          description: IP/ hostname of RADIUS server
          examples:
          - 1.2.3.4
          type: string
        keywrap_enabled:
          type: boolean
        keywrap_format:
          $ref: '#/components/schemas/radius_keywrap_format'
        keywrap_kek:
          examples:
          - '1122334455'
          type: string
        keywrap_mack:
          examples:
          - '1122334455'
          type: string
        port:
          $ref: '#/components/schemas/radius_acct_port'
        secret:
          description: Secret of RADIUS server
          examples:
          - testing123
          format: password
          type: string
      required:
      - host
      - secret
      type: object
    wlan_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/radius_auth_server'
      type: array
    wlan_qos:
      additionalProperties: false
      properties:
        class:
          $ref: '#/components/schemas/wlan_qos_class'
        overwrite:
          default: false
          description: Whether to overwrite QoS
          type: boolean
      type: object
    wlan_acct_servers:
      description: List of RADIUS accounting servers, optional, order matters where the first one is treated as primary
      items:
        $ref: '#/components/schemas/radius_acct_server'
      type: array
    radius_coa_port:
      anyOf:
      - maximum: 65545
        minimum: 1
        type: integer
      - type: string
      description: Radius CoA Port, value from 1 to 65535, default is 3799
    wlan_portal_google_email_domains:
      default: []
      description: Optional if `google_enabled`==`true`. Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
      examples:
      - - mydomain.edu
        - mydomain.org
      items:
        type: string
      type: array
    strings:
      items:
        type: string
      type: array
      uniqueItems: true
    coa_server:
      additionalProperties: false
      description: CoA Server
      properties:
        disable_event_timestamp_check:
          default: false
          description: Whether to disable Event-Timestamp Check
          type: boolean
        enabled:
          default: false
          type: boolean
        ip:
          examples:
          - 1.2.3.4
          format: ipv4
          type: string
        port:
          $ref: '#/components/schemas/radius_coa_port'
        secret:
          examples:
          - testing456
          type: string
      required:
      - ip
      - secret
      type: object
    wlan_dynamic_psk:
      additionalProperties: false
      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)\n  * PSK will come from RADIUS server\n  * AP sends client MAC as username and password (i.e. `enable_mac_auth` is assumed)\n  * AP sends BSSID:SSID as Caller-Station-ID\n  * `auth_servers` is required\n  * PSK will come from cloud WLC if source is cloud_psks\n  * default_psk will be used if cloud WLC is not available\n  * `multi_psk_only` and `psk` is ignored\n  * `pairwise` can only be wpa2-ccmp (for now, wpa3 support on the roadmap)"
      properties:
        default_psk:
          description: Default PSK to use if cloud WLC is not available, 8-63 characters
          examples:
          - foryoureyesonly
          maxLength: 63
          minLength: 8
          type: string
        default_vlan_id:
          $ref: '#/components/schemas/vlan_id_with_variable'
        enabled:
          default: false
          type: boolean
        force_lookup:
          default: false
          description: When 11r is enabled, we'll try to use the cached PMK, this can be disabled. `false` means auto
          type: boolean
        source:
          $ref: '#/components/schemas/dynamic_psk_source'
      type:
      - object
      - 'null'
    wlan_cisco_cwa:
      additionalProperties: false
      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:
          $ref: '#/components/schemas/wlan_cisco_cwa_allowed_hostnames'
        allowed_subnets:
          $ref: '#/components/schemas/wlan_cisco_cwa_allowed_subnets'
        blocked_subnets:
          $ref: '#/components/schemas/wlan_cisco_cwa_blocked_subnets'
        enabled:
          default: false
          type: boolean
      type: object
    wlan_portal_sms_provider:
      default: manual
      description: 'Optional if `sms_enabled`==`true`. enum: `broadnet`, `clickatell`, `gupshup`, `manual`, `puzzel`, `smsglobal`, `telstra`, `twilio`'
      enum:
      - broadnet
      - clickatell
      - gupshup
      - manual
      - puzzel
      - telstra
      - twilio
      - smsglobal
      examples:
      - twilio
      type: string
    msp_id:
      examples:
      - b9d42c2e-88ee-41f8-b798-f009ce7fe909
      format: uuid
      readOnly: true
      type: string
    wlan_hotspot20_operators:
      description: List of operators to support
      examples:
      - - google
        - att
      items:
        $ref: '#/components/schemas/wlan_hotspot20_operators_item'
      type: array
    radsec_proxy_hosts:
      description: Default is site.mxedge.radsec.proxy_hosts which must be a superset of all `wlans[*].radsec.proxy_hosts`. When `radsec.proxy_hosts` are not used, tunnel peers (org or site mxedges) are used irrespective of `use_site_mxedge`
      items:
        examples:
        - mxedge1.local
        type: string
      type: array
    radsec:
      additionalProperties: false
      description: RadSec settings
      properties:
        coa_enabled:
          default: false
          type: boolean
        enabled:
          type: boolean
        idle_timeout:
          $ref: '#/components/schemas/radsec_idle_timeout'
        mxcluster_ids:
          $ref: '#/components/schemas/radsec_mxcluster_ids'
        proxy_hosts:
          $ref: '#/components/schemas/radsec_proxy_hosts'
        server_name:
          description: Name of the server to verify (against the cacerts in Org Setting). Only if not Mist Edge.
          examples:
          - radsec.abc.com
          type: string
        servers:
          $ref: '#/components/schemas/radsec_servers'
        use_mxedge:
          description: use mxedge(s) as RadSec Proxy
          type: boolean
        use_site_mxedge:
          default: false
          description: To use Site mxedges when this WLAN does not use mxtunnel
          type: boolean
      type: object
    dynamic_psk_source:
      default: radius
      description: 'enum: `cloud_psks`, `radius`'
      enum:
      - cloud_psks
      - radius
      examples:
      - cloud_psks
      type: string
    radsec_idle_timeout:
      anyOf:
      - default: 60
        type: integer
      - type: string
      description: Radsec Idle Timeout in seconds. Default is 60
    wlan_ap_ids:
      description: List of device ids
      items:
        format: uuid
        type: string
      type:
      - array
      - 'null'
    wlan_hotspot20_domain_name:
      examples:
      - - mist.com
      items:
        type: string
      type: array
    wlan_dynamic_vlan_default_vlan_id:
      description: VLAN ID, VLAN range or variable to use when there’s no match from RADIUS
      oneOf:
      - type: string
      - default: 999
        maximum: 4094
        minimum: 1
        type: integer
    wlan_datarates_legacy:
      description: If `template`==`custom`. 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
      examples:
      - - '6'
        - '9'
        - '12'
        - '18'
        - 24b
        - '36'
        - '48'
        - '54'
      items:
        $ref: '#/components/schemas/wlan_datarates_legacy_item'
      type: array
    wlan_mxtunnel_name:
      description: When `interface`=`site_mxedge`, name of the mxtunnel that in mxtunnels under Site Setting
      items:
        default: default
        examples:
        - default
        type: string
      type: array
    wlan_datarates:
      additionalProperties: false
      description: Data rates wlan settings
      properties:
        eht:
          description: If `template`==`custom`. EHT MCS bitmasks for 4 streams (16-bit for each stream, MCS0 is least significant bit)
          examples:
          - 3fff0fff0fff03ff
          type:
          - string
          - 'null'
        he:
          description: If `template`==`custom`. HE MCS bitmasks for 4 streams (16-bit for each stream, MCS0 is least significant bit
          examples:
          - 0fff0fff0fff0fff
          type:
          - string
          - 'null'
        ht:
          description: If `template`==`custom`. 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)
          examples:
          - 00ff00ff00ff
          type:
          - string
          - 'null'
        legacy:
          $ref: '#/components/schemas/wlan_datarates_legacy'
        min_rssi:
          default: 0
          description: Minimum RSSI for client to connect, 0 means not enforcing
          examples:
          - -70
          type: integer
        template:
          $ref: '#/components/schemas/wlan_datarates_template'
        vht:
          description: If `template`==`custom`. 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.
          examples:
          - 03ff03ff03ff01ff
          type:
          - string
          - 'null'
      type: object
    radsec_servers:
      description: List of RadSec Servers. Only if not Mist Edge.
      items:
        $ref: '#/components/schemas/radsec_server'
      type: array
      uniqueItems: true
    wlan_vlan_ids_string:
      description: If `vlan_enabled`==`true` and `vlan_pooling`==`true`. List of VLAN IDs to be used in the VLAN Pool
      examples:
      - 1,2
      type: string
    wlan_dns_server_rewrite:
      additionalProperties: false
      description: For radius_group-based DNS server (rewrite DNS request depending on the Group RADIUS server returns)
      properties:
        enabled:
          default: false
          type: boolean
        radius_groups:
          additionalProperties:
            type: string
          description: Map between radius_group and the desired DNS server (IPv4 only). Property key is the RADIUS group, property value is the desired DNS Server
          examples:
          - contractor: 172.1.1.1
            guest: 8.8.8.8
          type: object
      type:
      - object
      - 'null'
    coa_servers:
      description: List of COA (change of authorization) servers, optional
      items:
        $ref: '#/components/schemas/coa_server'
      type: array
    wlan_auth_pairwise_item:
      description: 'enum: `wpa1-ccmp`, `wpa1-tkip`, `wpa2-ccmp`, `wpa2-tkip`, `wpa3`'
      enum:
      - wpa1-ccmp
      - wpa1-tkip
      - wpa2-ccmp
      - wpa2-tkip
      - wpa3
      examples:
      - wpa3
      type:
      - string
      - 'null'
    wlan_interface:
      default: all
      description: 'where this WLAN will be connected to. enum: `all`, `eth0`, `eth1`, `eth2`, `eth3`, `mxtunnel`, `site_mxedge`, `wxtunnel`'
      enum:
      - all
      - eth0
      - eth1
      - eth2
      - eth3
      - mxtunnel
      - site_mxedge
      - wxtunnel
      examples:
      - all
      type: string
    wlan_auth_keys:
      default: []
      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:
        type:
        - string
        - 'null'
      type: array
    wlan_datarates_template:
      default: compatible
      description: "Data Rates template to apply. enum: \n  * `no-legacy`: no 11b\n  * `compatible`: all, like before, default setting that Broadcom/Atheros used\n  * `legacy-only`: disable 802.11n and 802.11ac\n  * `high-density`: no 11b, no low rates\n  * `custom`: user defined"
      enum:
      - compatible
      - legacy-only
      - custom
      - no-legacy
      - high-density
      type:
      - string
      - 'null'
    wlan_rateset:
      additionalProperties:
        $ref: '#/components/schemas/wlan_datarates'
      description: 'Property key is the RF band. enum: `24`, `5`, `6`'
      type: object
    dot11_band:
      description: 'enum: `24`, `5`, `5-dedicated`, `5-selectable`, `6`, `6-dedicated`, `6-selectable`'
      enum:
      - '24'
      - '5'
      - 5-dedicated
      - 5-selectable
      - '6'
      - 6-dedicated
      - 6-selectable
      type: string
    response_http403:
      additionalProperties: false
      properties:
        detail:
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    wlan_bands:
      default:
      - '24'
      - '5'
      - '6'
      description: 'List of radios that the wlan should apply to. enum: `24`, `5`, `5-dedicated`, `5-selectable`, `6`, `6-dedicated`, `6-selectable`'
      items:
        $ref: '#/components/schemas/dot11_band'
      type: array
    wlan_auth_server_selection:
      default: ordered
      description: 'When ordered, AP will prefer and go back to the first server if possible. enum: `ordered`, `unordered`'
      enum:
      - ordered
      - unordered
      examples:
      - ordered
      type: string
    radsec_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:
        examples:
        - 572586b7-f97b-a22b-526c-8b97a3f609c4
        format: uuid
        type: string
      type: array
    wlan_bonjour_service_properties:
      additionalProperties: false
      properties:
        disable_local:
          default: false
          description: Whether to prevent wireless clients to discover bonjour devices on the same WLAN
          type: boolean
        radius_groups:
          $ref: '#/components/schemas/wlan_bonjour_service_properties_radius_groups'
        scope:
          $ref: '#/components/schemas/wlan_bonjour_service_properties_scope'
      type: object
    wlan_portal_sponsor_email_domains:
      description: List of domain allowed for sponsor email. Required if `sponsor_enabled` is `true` and `sponsors` is empty.
      examples:
      - - reserved.net
        - reserved.org
      items:
        type: string
      type: array
    additional_vlan_ids_array:
      items:
        $ref: '#/components/schemas/vlan_id_with_variable'
      type: array
    wlan_dynamic_vlan_default_vlan_ids:
      description: Default VLAN ID(s) can be a number, a range of VLAN IDs, a variable or multiple numbers, ranges or variables as a VLAN pool. Default VLAN as a pool of VLANS requires 0.14.x or newer firmware
      items:
        $ref: '#/components/schemas/wlan_dynamic_vlan_default_vlan_id'
      type: array
    wlan_app_qos:
      additionalProperties: false
      description: APP qos wlan settings
      properties:
        apps:
          additionalProperties:
            $ref: '#/components/schemas/wlan_app_qos_apps_properties'
          default: {}
          examples:
          - skype-business-video:
              dscp: 32
              dst_subnet: 10.2.0.0/16
              src_subnet: 10.2.0.0/16
          type: object
        enabled:
          default: false
          type: boolean
        others:
          $ref: '#/components/schemas/wlan_app_qos_others'
      type: object
    wlan_dynamic_vlan_default_vlan_id_deprecated:
      deprecated: true
      description: vlan_id to use when there’s no match from RADIUS
      oneOf:
      - type: string
      - default: 999
        maximum: 4094
        minimum: 1
        type: integer
    wlan_portal_auth:
      default: none
      description: 'authentication scheme. enum: `amazon`, `azure`, `email`, `external`, `facebook`, `google`, `microsoft`, `multi`, `none`, `password`, `sms`, `sponsor`, `sso`'
      enum:
      - amazon
      - azure
      - email
      - external
      - facebook
      - google
      - microsoft
      - multi
      - none
      - password
      - sms
      - sponsor
      - sso
      examples:
      - none
      type: string
    wlan_apply_to:
      description: 'enum: `aps`, `site`, `wxtags`'
      enum:
      - aps
      - site
      - wxtags
      type: string
    hour:
      default: ''
      description: Hour range of the day (e.g. `09:00-17:00`). If the hour is not defined then it's treated as 00:00-23:59.
      examples:
      - 09:00-17:00
      type: string
    wlan_portal:
      additionalProperties: false
      description: Portal wlan settings
      properties:
        allow_wlan_id_roam:
          default: false
          description: Optional if `amazon_enabled`==`true`. Whether to allow guest to connect to other Guest WLANs (with different `WLAN.ssid`) of same org without reauthentication (disable random_mac for seamless roaming)
          type: boolean
        amazon_client_id:
          default: ''
          description: Optional if `amazon_enabled`==`true`. Amazon OAuth2 client id. This is optional. If not provided, it will use a default one.
          type:
          - string
          - 'null'
        amazon_client_secret:
          default: ''
          description: Optional if `amazon_enabled`==`true`. Amazon OAuth2 client secret. If amazon_client_id was provided, provide a corresponding value. Else leave blank.
          type:
          - string
          - 'null'
        amazon_email_domains:
          $ref: '#/components/schemas/wlan_portal_amazon_email_domains'
        amazon_enabled:
          default: false
          description: Whether amazon is enabled as a login method
          type: boolean
        amazon_expire:
          default: null
          description: Optional if `amazon_enabled`==`true`. Interval for which guest remains authorized using amazon auth (in minutes), if not provided, uses expire`
          type:
          - integer
          - 'null'
        auth:
          $ref: '#/components/schemas/wlan_portal_auth'
        azure_client_id:
          default: ''
          description: Required if `azure_enabled`==`true`. Azure active directory app client id
          type:
          - string
          - 'null'
        azure_client_secret:
          default: ''
          description: Required if `azure_enabled`==`true`. Azure active directory app client secret
          type:
          - string
          - 'null'
        azure_enabled:
          default: false
          description: Whether Azure Active Directory is enabled as a login method
          type: boolean
        azure_expire:
         

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