openapi: 3.1.0
info:
contact:
email: tmunzer@juniper.net
name: Thomas Munzer
description: '> Version: **2604.1.1**
>
> Date: **May 13, 2026**
NOTE:
Some important API changes will be introduced. Please make sure to read the
announcements
---
## Additional Documentation
* [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)
* [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)
* [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)
## Helpful Resources
* [API Sandbox and Exercises](https://api-class.mist.com/)
* [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)
* [Python Script Examples](https://github.com/tmunzer/mist_library)
* [API Demo Apps](https://apps.mist-lab.fr/)
* [Juniper Blog](https://blogs.juniper.net/)
## Mist Web Browser Extension:
* Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)
* Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)
---'
license:
name: MIT
url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
title: Mist Admins 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_mxtunnel_ids:
description: When `interface`=`mxtunnel`, id of the Mist Tunnel
format: uuid
items:
examples:
- 08cd7499-5841-51c8-e663-fb16b6f3b45e
type: string
type: array
wlan_cisco_cwa_allowed_hostnames:
description: List of hostnames without http(s):// (matched by substring)
items:
examples:
- snapchat.com
type: string
type: array
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
strings:
items:
type: string
type: array
uniqueItems: true
wlan_bonjour:
additionalProperties: false
description: Bonjour gateway wlan settings
properties:
additional_vlan_ids:
$ref: '#/components/schemas/additional_vlan_ids'
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:
$ref: '#/components/schemas/wlan_bonjour_service_properties'
description: "What services are allowed. \nProperty key is the service name"
examples:
- airplay:
radius_groups:
- teachers
scope: same_ap
type: object
type: object
wlan_portal_sponsors:
description: Object of allowed sponsors email with name. Required if `sponsor_enabled` is `true` and `sponsor_email_domains` is empty. Property key is the sponsor email, Property value is the sponsor name. List of email allowed for backward compatibility
oneOf:
- $ref: '#/components/schemas/wlan_portal_sponsors_list'
- $ref: '#/components/schemas/wlan_portal_sponsors_object'
wlan_portal_template_setting:
additionalProperties: false
description: Portal template wlan settings
properties:
accessCodeAlternateEmail:
default: Use alternate email address
type: string
alignment:
$ref: '#/components/schemas/portal_template_alignment'
ar:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
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:
default: Sign in with Passphrase
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 Wi-Fi with
type: string
backLink:
description: Label of the link to go back to /logon
type: string
ca-ES:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
color:
default: '#1074bc'
description: Portal main color
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 your company name
description: Error message when company not provided
type: string
companyLabel:
default: Company
description: Label of company field
type: string
cs-CZ:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
da-DK:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
de-DE:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
el-GR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
email:
default: false
description: Whether email field is required
type: boolean
emailAccessDomainError:
default: Email Access Domain Error
description: Error message when a user has valid social login but doesn't match specified email domains.
type: string
emailCancel:
default: Cancel
description: Label for cancel confirmation code submission using email auth
type: string
emailCodeCancel:
default: I did not receive the code
type: string
emailCodeError:
default: Please provide valid alternate email
type: string
emailCodeFieldLabel:
default: Access Code
type: string
emailCodeMessage:
default: Enter the access number that was sent to your email address.
type: string
emailCodeSubmit:
default: Sign In
type: string
emailCodeTitle:
default: Access Code
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 Wi-Fi network.
type: string
emailSubmit:
default: Send Access Code
description: Label for confirmation code submit button using email auth
type: string
emailTitle:
default: Sign in with Email
description: Title for the Email registration
type: string
en-GB:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
en-US:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
es-ES:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
fi-FI:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
field1:
default: false
description: Whether to ask field1
type: boolean
field1Error:
default: Please provide Custom Field 1
description: Error message when field1 not provided
type: string
field1Label:
default: Custom Field 1
description: Label of field1
type: string
field1Required:
description: Whether field1 is required field
type: boolean
field2:
default: false
description: Whether to ask field2
type: boolean
field2Error:
default: Please provide Custom Field 2
description: Error message when field2 not provided
type: string
field2Label:
default: Custom Field 2
description: Label of field2
type: string
field2Required:
description: Whether field2 is required field
type: boolean
field3:
default: false
description: Whether to ask field3
type: boolean
field3Error:
default: Please provide Custom Field 3
description: Error message when field3 not provided
type: string
field3Label:
default: Custom Field 3
description: Label of field3
type: string
field3Required:
description: Whether field3 is required field
type: boolean
field4:
default: false
description: Whether to ask field4
type: boolean
field4Error:
default: Please provide Custom Field 4
description: Error message when field4 not provided
type: string
field4Label:
default: Custom Field 4
description: Label of field4
type: string
field4Required:
description: Whether field4 is required field
type: boolean
fr-FR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
he-IL:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
hi-IN:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
hr-HR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
hu-HU:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
id-ID:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
it-IT:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
ja-JP:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
ko-KR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
logo:
default: null
description: Custom logo with `data:image/png;base64,` format, default null, uses Juniper Mist Logo. File size must be less than 100kB and image dimensions must be less than 500px x 200px (width x height).
examples:
- data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZg…
type:
- string
- 'null'
logoHeight:
description: Height of the logo, in px
examples:
- 123
maximum: 200
minimum: 0
type: integer
logoWidth:
description: Width of the logo, in px
examples:
- 408
maximum: 500
minimum: 0
type: integer
marketingPolicyLink:
default: Marketing Policy
description: label of the link to go to /marketing_policy
type: string
marketingPolicyOptIn:
default: false
description: Whether marketing policy optin is enabled
type: boolean
marketingPolicyOptInLabel:
default: I wish to receive Marketing notifications
description: label for marketing optin
type: string
marketingPolicyOptInText:
default: Marketing policy content
description: marketing policy text
type: string
message:
default: Sign in to get online
type: string
ms-MY:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
multiAuth:
default: false
type: boolean
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
nb-NO:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
nl-NL:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
optOutDefault:
default: true
description: Default value for the `Do not store` checkbox
type: boolean
optout:
default: false
description: Whether to display Do Not Store My Personal Information
type: boolean
optoutLabel:
default: Do not store
description: Label for Do Not Store My Personal Information
type: string
pageTitle:
default: Welcome
type: string
passphraseCancel:
default: Cancel
description: Label for the Passphrase cancel button
type: string
passphraseError:
default: Invalid Passphrase
description: Error message when invalid passphrase is provided
type: string
passphraseLabel:
default: Passphrase
description: Passphrase
type: string
passphraseMessage:
default: Enter the secret passphrase to access the Wi-Fi network.
type: string
passphraseSubmit:
default: Sign in
description: Label for the Passphrase submit button
type: string
passphraseTitle:
default: Sign in with Passphrase
description: Title for passphrase details page
type: string
pl-PL:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
poweredBy:
default: true
description: Whether to show \"Powered by Mist\"
type: boolean
privacy:
default: false
description: Whether to require the Privacy Term acceptance
type: boolean
privacyPolicyAcceptLabel:
default: I accept the Privacy Terms
description: Prefix of the label of the link to go to Privacy Policy
type: string
privacyPolicyError:
default: Please review and accept the Privacy Terms
description: Error message when Privacy Policy not accepted
type: string
privacyPolicyLink:
default: Privacy Terms
description: Label of the link to go to Privacy Policy
type: string
privacyPolicyText:
default: << provide your Privacy Terms here >>
description: Text of the Privacy Policy
type: string
pt-BR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
pt-PT:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
requiredFieldLabel:
default: required
description: Label to denote required field
type: string
responsiveLayout:
default: true
type: boolean
ro-RO:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
ru-RU:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
signInLabel:
default: Sign In
description: Label of the button to signin
type: string
sk-SK:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
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: I did not receive the code
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 access number that was sent to your mobile number.
type: string
smsCodeSubmit:
default: Sign In
description: Label for confirmation code submit button
type: string
smsCodeTitle:
default: Access Code
type: string
smsCountryFieldLabel:
default: 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
smsIsTwilio:
default: false
type: boolean
smsMessageFormat:
description: Format of access code sms message. {{code}} and {{duration}} are placeholders 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 Wi-Fi network. Message and data rates may apply.
type: string
smsNumberSubmit:
default: Send Access Code
description: Label for submit button for code generation
type: string
smsNumberTitle:
default: Sign in with Text Message
description: Title for phone number details
type: string
smsUsernameFormat:
default: username
type: string
smsValidityDuration:
description: How long confirmation code should be considered valid (in minutes)
maximum: 30
minimum: 1
type: integer
sponsorBackLink:
default: Go back and edit request form
type: string
sponsorCancel:
default: Cancel
type: string
sponsorEmail:
default: Sponsor Email
description: Label for Sponsor Email
type: string
sponsorEmailError:
default: Please provide valid sponsor email
type: string
sponsorEmailTemplate:
default: ''
description: "HTML template to replace/override default sponsor email template \nSponsor Email Template supports following template variables:\n * `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\n * `deny_url`: Renders URL to reject the request\n * `guest_email`: Renders Email ID of the guest\n * `guest_name`: Renders Name of the guest\n * `field1`: Renders value of the Custom Field 1\n * `field2`: Renders value of the Custom Field 2\n * `sponsor_link_validity_duration`: Renders validity time of the request (i.e. Approve/Deny URL)\n * `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:
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 name
type: string
sponsorNotePending:
default: Please wait for them to acknowledge.
type: string
sponsorRequestAccess:
default: Request Wi-Fi Access
description: Submit button label request Wifi Access and notify sponsor about guest request
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: Request Wi-Fi Access
description: Submit button label to notify sponsor about guest request
type: string
sponsorsError:
default: Please select a sponsor
type: string
sponsorsFieldLabel:
default: Sponsors
type: string
sv-SE:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
th-TH:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
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 the 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: << provide your Terms of Service here >>
description: Text of the Terms of Service
type: string
tr-TR:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
uk-UA:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
vi-VN:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
zh-Hans:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
zh-Hant:
$ref: '#/components/schemas/wlan_portal_template_setting_locale'
required:
- pageTitle
type: object
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_schedule:
additionalProperties: false
description: WLAN operating schedule, default is disabled
properties:
enabled:
default: false
type: boolean
hours:
$ref: '#/components/schemas/hours'
type: object
radsec_idle_timeout:
anyOf:
- default: 60
type: integer
- type: string
description: Radsec Idle Timeout in seconds. Default is 60
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_bonjour_service_properties_scope:
default: same_site
description: 'how bonjour services should be discovered for the same WLAN. enum: `same_ap`, `same_map`, `same_site`'
enum:
- same_ap
- same_map
- same_site
type: string
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_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
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_allowed_subnets:
default: []
description: List of CIDRs
examples:
- - 63.5.3.0/24
items:
type: string
type: array
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:
default: null
description: Interval for which guest remains authorized using azure auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
azure_tenant_id:
default: ''
description: Required if `azure_enabled`==`true`. Azure active directory tenant id.
type:
- string
- 'null'
broadnet_password:
default: ''
description: Required if `sms_provider`==`broadnet`
examples:
- password
format: password
type: string
broadnet_sid:
description: Required if `sms_provider`==`broadnet`
examples:
- MIST
type: string
broadnet_user_id:
description: Required if `sms_provider`==`broadnet`
examples:
- juniper
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: Required if `sms_provider`==`clickatell`
type: string
cross_site:
default: false
description: Whether to allow guest to roam between WLANs (with same `WLAN.ssid`, regardless of variables) of different sites of same org without reauthentication (disable random_mac for seamless roaming)
type: boolean
email_enabled:
default: false
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
examples:
- 1440
type: integer
external_portal_url:
default: ''
description: Required if `wlan_portal_auth`==`external`. External portal URL (e.g. https://host/url) where we can append our query parameters to
type: string
facebook_client_id:
default: ''
description: Required if `facebook_enabled`==`true`. Facebook OAuth2 app id. This is optional. If not provided, it will use a default one.
type:
- string
- 'null'
facebook_client_secret:
default: ''
description: Required if `facebook_enabled`==`true`. Facebook OAuth2 app secret. If facebook_client_id was provided, provide a corresponding value. Else leave blank.
type:
- string
- 'null'
facebook_email_domains:
$ref: '#/components/schemas/wlan_portal_facebook_email_domains'
facebook_enabled:
default: false
description: Whether facebook is enabled as a login method
type: boolean
facebook_expire:
default: null
description: Optional if `facebook_enabled`==`true`. Interval for which guest remains authorized using facebook auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
forward:
default: false
description: Whether to forward the user to another URL after authorized
type: boolean
forward_url:
default: ''
description: URL to forward the user to
examples:
- https://abc.com/promotions
type:
- string
- 'null'
google_client_id:
default: ''
description: Google OAuth2 app id. This is optional. If not provided, it will use a default one.
type:
- string
- 'null'
google_client_secret:
default: ''
description: Optional if `google_enabled`==`true`. Google OAuth2 app secret. If google_client_id was provided, provide a corresponding value. Else leave blank.
type:
- string
- 'null'
google_email_domains:
$ref: '#/components/schemas/wlan_portal_google_email_domains'
google_enabled:
default: false
description: Whether Google is enabled as login method
type: boolean
google_expire:
default: null
description: Optional if `google_enabled`==`true`. Interval for which guest remains authorized using Google Auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
gupshup_password:
description: Required if `sms_provider`==`gupshup`
format: password
type: string
gupshup_userid:
description: Required if `sms_provider`==`gupshup`
type: string
microsoft_client_id:
default: ''
description: Optional if `microsoft_enabled`==`true`. Microsoft 365 OAuth2 client id. This is optional. If not provided, it will use a default one.
type:
- string
- 'null'
microsoft_client_secret:
default: ''
description: Optional if `microsoft_enabled`==`true`. Microsoft 365 OAuth2 client secret. If microsoft_client_id was provided, provide a corresponding value. Else leave blank.
type:
- string
- 'null'
microsoft_email_domains:
$ref: '#/components/schemas/wlan_portal_microsoft_email_domains'
microsoft_enabled:
default: false
description: Whether microsoft 365 is enabled as a login method
type: boolean
microsoft_expire:
default: null
description: Optional if `microsoft_enabled`==`true`. Interval for which guest remains authorized using microsoft auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
passphrase_enabled:
default: false
description: Whether password is enabled
type: boolean
passphrase_expire:
default: null
description: Optional if `passphrase_enabled`==`true`. Interval for which guest remains authorized using passphrase auth (in minutes), if not provided, uses `expire`
type:
- integer
- 'null'
password:
default: ''
description: Required if `passphrase_enabled`==`true`.
examples:
- let me in
type:
- string
- 'null'
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, behavior is acc to `sponsor_email_domains`
type: boolean
predefined_sponsors_hide_email:
default: false
description: Whether to hide sponsor’s email from list of sponsors
type: boolean
privacy:
default: false
type: boolean
puzzel_password:
description: Required if `sms_provider`==`puzzel`
format: password
type: string
puzzel_service_id:
description: Required if `sms_provider`==`puzzel`
type: string
puzzel_username:
description: Required if `sms_provider`==`puzzel`
type: string
smsMessageFormat:
default: Code {{code}} expires in {{duration}} minutes.
description: Optional if `sms_enabled`==`true`. SMS Message format
type: string
sms_enabled:
default: false
description: Whether sms is enabled as a login method
type: boolean
sms_expire:
default: null
description: Optional if `sms_enabled`==`true`. Interval for which guest remains authorized using sms auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
sms_provider:
$ref: '#/components/schemas/wlan_portal_sms_provider'
smsglobal_api_key:
description: Required if `sms_provider`==`smsglobal`, Client API Key
type: string
smsglobal_api_secret:
description: Required if `sms_provider`==`smsglobal`, Client secret
format: password
type: string
sponsor_auto_approve:
default: false
description: Optional if `sponsor_enabled`==`true`. 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:
$ref: '#/components/schemas/wlan_portal_sponsor_email_domains'
sponsor_enabled:
default: false
description: Whether sponsor is enabled
type: boolean
sponsor_expire:
default: null
description: Optional if `sponsor_enabled`==`true`. Interval for which guest remains authorized using sponsor auth (in minutes), if not provided, uses expire`
type:
- integer
- 'null'
sponsor_link_validity_duration:
$ref: '#/components/schemas/sponsor_link_validity_duration'
sponsor_notify_all:
default: false
description: Optional if `sponsor_enabled`==`true`. 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
sponsor_status_notify:
default: false
description: Optional if `sponsor_enabled`==`true`. If enabled, guest will get email about sponsor's action (approve/deny)
type: boolean
sponsors:
$ref: '#/components/schemas/wlan_portal_sponsors'
sso_default_role:
default: ''
description: Optional if `wlan_portal_auth`==`sso`, 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:
default: ''
description: Optional if `wlan_portal_auth`==`sso`
type: string
sso_idp_cert:
default: ''
description: Required if `wlan_portal_auth`==`sso`. IDP Cert (used to verify the signed response)
type: string
sso_idp_sign_algo:
$ref: '#/components/schemas/wlan_portal_idp_sign_algo'
sso_idp_sso_url:
default: ''
description: Required if `wlan_portal_auth`==`sso`, IDP Single-Sign-On URL
type: string
sso_issuer:
default: ''
description: Required if `wlan_portal_auth`==`sso`, IDP issuer URL
type: string
sso_nameid_format:
$ref: '#/components/schemas/wlan_portal_sso_nameid_format'
telstra_client_id:
description: Required if `sms_provider`==`telstra`, Client ID provided by Telstra
type: string
telstra_client_secret:
description: Required if `sms_provider`==`telstra`, Client secret provided by Telstra
format: password
type: string
twilio_auth_token:
description: Required if `sms_provider`==`twilio`, Auth token account with twilio account
examples:
- af9dac44c344a875ab5d31cb7abcdefg
type:
- string
- 'null'
twilio_phone_number:
description: Required if `sms_provider`==`twilio`, Twilio phone number associated with the account. See example for accepted format.
examples:
- '+18548888888'
type:
- string
- 'null'
twilio_sid:
description: Required if `sms_provider`==`twilio`, Account SID provided by Twilio
examples:
- af9dac44c344a875ab5d31cb7abcdefg
type:
- string
- 'null'
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_auth_pairwise:
default:
- wpa2-ccmp
description: When `type`=`psk` or `type`=`eap`, one or more of `wpa1-ccmp`, `wpa1-tkip`, `wpa2-ccmp`, `wpa2-tkip`, `wpa3`
items:
$ref: '#/components/schemas/wlan_auth_pairwise_item'
type: array
wlan_ap_ids:
description: List of device ids
items:
format: uuid
type: string
type:
- array
- 'null'
wlan_auth_type:
default: open
description: 'enum: `eap`, `eap192`, `open`, `psk`, `psk-tkip`, `psk-wpa2-tkip`, `wep`'
enum:
- eap
- eap192
- open
- psk
- psk-tkip
- psk-wpa2-tkip
- wep
examples:
- psk
type: string
wlan_portal_idp_sign_algo:
default: sha1
description: 'Optional if `wlan_portal_auth`==`sso`, Signing algorithm for SAML Assertion. enum: `sha1`, `sha256`, `sha384`, `sha512`'
enum:
- sha1
- sha256
- sha384
- sha512
type: string
wlan_portal_template_setting_locale:
additionalProperties: false
properties:
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:
type: string
backLink:
description: Label of the link to go back to /logon
type: string
companyError:
description: Error message when company not provided
type: string
companyLabel:
description: Label of company field
type: string
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:
type: string
emailCodeFieldLabel:
type: string
emailCodeMessage:
type: string
emailCodeSubmit:
type: string
emailCodeTitle:
type: string
emailError:
description: Error message when email not provided
type: string
emailFieldLabel:
type: string
emailLabel:
description: Label of email field
type: string
emailMessage:
type: string
emailSubmit:
description: Label for confirmation code submit button using email auth
type: string
emailTitle:
description: Title for the Email registration
type: string
field1Error:
description: Error message when field1 not provided
type: string
field1Label:
description: Label of field1
type: string
field2Error:
description: Error message when field2 not provided
type: string
field2Label:
description: Label of field2
type: string
field3Error:
description: Error message when field3 not provided
type: string
field3Label:
description: Label of field3
type: string
field4Error:
description: Error message when field4 not provided
type: string
field4Label:
description: Label of field4
type: string
marketingPolicyLink:
description: label of the link to go to /marketing_policy
type: string
marketingPolicyOptIn:
description: Whether marketing policy optin is enabled
type: boolean
marketingPolicyOptInLabel:
description: label for marketing optin
type: string
marketingPolicyOptInText:
description: marketing policy text
type: string
message:
type: string
nameError:
description: Error message when name not provided
type: string
nameLabel:
description: Label of name field
type: string
optoutLabel:
description: Label for Do Not Store My Personal Information
type: string
pageTitle:
type: string
passphraseCancel:
description: Label for the Passphrase cancel button
type: string
passphraseError:
description: Error message when invalid passphrase is provided
type: string
passphraseLabel:
description: Passphrase
type: string
passphraseMessage:
type: string
passphraseSubmit:
description: Label for the Passphrase submit button
type: string
passphraseTitle:
description: Title for passphrase details page
type: string
privacyPolicyAcceptLabel:
description: Prefix of the label of the link to go to Privacy Policy
type: string
privacyPolicyError:
description: Error message when Privacy Policy not accepted
type: string
privacyPolicyLink:
description: Label of the link to go to Privacy Policy
type: string
privacyPolicyText:
description: Text of the Privacy Policy
type: string
requiredFieldLabel:
description: Label to denote required field
type: string
signInLabel:
description: Label of the button to signin
type: string
smsCarrierDefault:
type: string
smsCarrierError:
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:
type: string
smsCodeMessage:
type: string
smsCodeSubmit:
description: Label for confirmation code submit button
type: string
smsCodeTitle:
type: string
smsCountryFieldLabel:
type: string
smsCountryFormat:
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 placeholders and should be retained as is.
type: string
smsNumberCancel:
description: Label for canceling mobile details for SMS auth
type: string
smsNumberError:
type: string
smsNumberFieldLabel:
description: Label for field to provide mobile number
type: string
smsNumberFormat:
type: string
smsNumberMessage:
type: string
smsNumberSubmit:
description: Label for submit button for code generation
type: string
smsNumberTitle:
description: Title for phone number details
type: string
smsUsernameFormat:
type: string
sponsorBackLink:
type: string
sponsorCancel:
type: string
sponsorEmail:
description: Label for Sponsor Email
type: string
sponsorEmailError:
type: string
sponsorInfoApproved:
type: string
sponsorInfoDenied:
type: string
sponsorInfoPending:
type: string
sponsorName:
description: Label for Sponsor Name
type: string
sponsorNameError:
type: string
sponsorNotePending:
type: string
sponsorRequestAccess:
description: Submit button label request Wifi Access and notify sponsor about guest request
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:
type: string
sponsorsFieldLabel:
type: string
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
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_hotspot20_domain_name:
examples:
- - mist.com
items:
type: string
type: array
wlan_hotspot_20:
additionalProperties: false
description: Hostspot 2.0 wlan settings
properties:
domain_name:
$ref: '#/components/schemas/wlan_hotspot20_domain_name'
enabled:
description: Whether to enable hotspot 2.0 config
type: boolean
nai_realms:
$ref: '#/components/schemas/strings'
operators:
$ref: '#/components/schemas/wlan_hotspot20_operators'
rcoi:
$ref: '#/components/schemas/wlan_hotspot20_rcoi'
venue_name:
description: Venue name, default is site name
examples:
- some_name
type: string
type: object
coa_servers:
description: List of COA (change of authorization) servers, optional
items:
$ref: '#/components/schemas/coa_server'
type: array
response_http401:
additionalProperties: false
properties:
detail:
examples:
- Authentication credentials were not provided.
type: string
type: object
wlan_rateset:
additionalProperties:
$ref: '#/components/schemas/wlan_datarates'
description: 'Property key is the RF band. enum: `24`, `5`, `6`'
type: object
wlan_portal_microsoft_email_domains:
default: []
description: Optional if `microsoft_enabled`==`true`. Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
items:
type: string
type: array
wlan_vlan_id_with_variable:
oneOf:
- type: string
- maximum: 4094
minimum: 1
type: integer
- type: 'null'
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
dynamic_psk_source:
default: radius
description: 'enum: `cloud_psks`, `radius`'
enum:
- cloud_psks
- radius
examples:
- cloud_psks
type: string
radius_auth_port:
anyOf:
- maximum: 65545
minimum: 1
type: integer
- type: string
description: Radius Auth Port, value from 1 to 65535, default is 1812
wlan_portal_sso_nameid_format:
default: email
description: 'Optional if `wlan_portal_auth`==`sso`. enum: `email`, `unspecified`'
enum:
- email
- unspecified
type: string
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
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_qos_class:
default: best_effort
description: 'enum: `background`, `best_effort`, `video`, `voice`'
enum:
- background
- best_effort
- video
- voice
examples:
- best_effort
type: string
wlan_wxtag_ids:
description: List of wxtag_ids
items:
format: uuid
type: string
type:
- array
- 'null'
radius_auth_server:
additionalProperties: false
description: Authentication Server
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_auth_port'
require_message_authenticator:
default: false
description: Whether to require Message-Authenticator in requests
type: boolean
secret:
description: Secret of RADIUS server
examples:
- testing123
format: password
type: string
required:
- host
- secret
type: object
wlan_cisco_cwa_allowed_subnets:
description: List of CIDRs
items:
examples:
- 63.5.3.0/24
type: string
type: array
wlan_hotspot20_operators_item:
description: 'enum: `ameriband`, `att`, `boingo`, `charter`, `eduroam`, `global_reach`, `google`, `hughes_systique`, `openroaming_legacy`, `openroaming_settled`, `openroaming_settlement_free`, `single_digits`, `tmobile`, `verizon`'
enum:
- ameriband
- att
- boingo
- charter
- eduroam
- global_reach
- google
- hughes_systique
- openroaming_legacy
- openroaming_settled
- openroaming_settlement_free
- single_digits
- tmobile
- verizon
type: string
vlan_id_with_variable:
oneOf:
- type: string
- maximum: 4094
minimum: 1
type: integer
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
additional_vlan_ids_array:
items:
$ref: '#/components/schemas/vlan_id_with_variable'
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
wlan_hotspot20_operators:
description: List of operators to support
examples:
- - google
- att
items:
$ref: '#/components/schemas/wlan_hotspot20_operators_item'
type: array
msp_id:
examples:
- b9d42c2e-88ee-41f8-b798-f009ce7fe909
format: uuid
readOnly: true
type: string
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_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_apply_to:
description: 'enum: `aps`, `site`, `wxtags`'
enum:
- aps
- site
- wxtags
type: string
wlan_dynamic_vlan_local_vlan_ids:
description: VLAN_ids to be locally bridged
items:
$ref: '#/components/schemas/vlan_id_with_variable'
type: array
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
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
created_time:
description: When the object has been created, in epoch
format: double
readOnly: true
type: number
wlan_roam_mode:
default: NONE
description: 'enum: `11r`, `OKC`, `NONE`'
enum:
- 11r
- NONE
- OKC
examples:
- NONE
type: string
wlan:
description: '**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_immediate_update:
default: false
description: Enable coa-immediate-update and address-change-immediate-update on the access profile.
type: boolean
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
examples:
- 0
maximum: 65535
minimum: 0
type: integer
acct_servers:
$ref: '#/components/schemas/wlan_acct_servers'
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`==`true`, which allows SSDP
type: boolean
ap_ids:
$ref: '#/components/schemas/wlan_ap_ids'
app_limit:
$ref: '#/components/schemas/wlan_app_limit'
app_qos:
$ref: '#/components/schemas/wlan_app_qos'
apply_to:
$ref: '#/components/schemas/wlan_apply_to'
arp_filter:
default: false
description: Whether to enable smart arp filter
type: boolean
auth:
$ref: '#/components/schemas/wlan_auth'
auth_server_selection:
$ref: '#/components/schemas/wlan_auth_server_selection'
auth_servers:
$ref: '#/components/schemas/wlan_auth_servers'
auth_servers_nas_id:
description: Optional, up to 48 bytes, will be dynamically generated if not provided. used only for authentication servers
examples:
- 5c5b350e0101-nas
type:
- string
- 'null'
auth_servers_nas_ip:
description: Optional, NAS-IP-ADDRESS to use
examples:
- 15.3.1.5
type:
- string
- 'null'
auth_servers_retries:
default: 2
description: Radius auth session retries. Following fast timers are set if "fast_dot1x_timers" knob is enabled. ‘retries’ are set to value of auth_servers_retries. ‘max-requests’ is also set when setting auth_servers_retries and is set to default value to 3.
examples:
- 5
type: integer
auth_servers_timeout:
default: 5
description: Radius auth session timeout. Following fast timers are set if "fast_dot1x_timers" knob is enabled. ‘quite-period’ and ‘transmit-period’ are set to half the value of auth_servers_timeout. ‘supplicant-timeout’ is also set when setting auth_servers_timeout and is set to default value of 10.
type: integer
band:
deprecated: true
description: '`band` is deprecated and kept for backward compatibility. 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:
$ref: '#/components/schemas/wlan_bands'
block_blacklist_clients:
default: false
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:
$ref: '#/components/schemas/wlan_limit'
client_limit_down_enabled:
default: false
description: If downlink limiting per-client is enabled
type: boolean
client_limit_up:
$ref: '#/components/schemas/wlan_limit'
client_limit_up_enabled:
default: false
description: If uplink limiting per-client is enabled
type: boolean
coa_servers:
$ref: '#/components/schemas/coa_servers'
created_time:
$ref: '#/components/schemas/created_time'
disable_11ax:
default: false
description: Some old WLAN drivers may not be compatible
type: boolean
disable_11be:
default: false
description: To disable Wi-Fi 7 EHT IEs
type: boolean
disable_ht_vht_rates:
default: false
description: To disable ht or vht rates
type: boolean
disable_message_authenticator_check:
default: false
description: whether to disable Message-Authenticator Check, which is used to verify the integrity of RADIUS messages, default is false (i.e. for better security)
type: boolean
disable_uapsd:
default: false
description: Whether to disable U-APSD
type: boolean
disable_v1_roam_notify:
default: false
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_when_gateway_unreachable:
default: false
description: "When any of the following is true, this WLAN will be disabled\n * cannot get IP\n * cannot obtain default gateway\n * cannot reach default gateway"
type: boolean
disable_when_mxtunnel_down:
default: false
type: boolean
disable_wmm:
default: false
description: Whether to disable WMM
type: boolean
dns_server_rewrite:
$ref: '#/components/schemas/wlan_dns_server_rewrite'
dtim:
default: 2
type: integer
dynamic_psk:
$ref: '#/components/schemas/wlan_dynamic_psk'
dynamic_vlan:
$ref: '#/components/schemas/wlan_dynamic_vlan'
enable_local_keycaching:
default: false
description: Enable AP-AP keycaching via multicast
type: boolean
enable_wireless_bridging:
default: false
description: By default, we'd inspect all DHCP packets and drop those unrelated to the wireless client itself in the case where client is a wireless bridge (DHCP packets for other MACs will need to be forwarded), wireless_bridging can be enabled
type: boolean
enable_wireless_bridging_dhcp_tracking:
default: false
description: If the client bridge is doing DHCP on behalf of other devices (L2-NAT), enable dhcp_tracking will cut down DHCP response packets to be forwarded to wireless
type: boolean
enabled:
default: true
description: If this wlan is enabled
type: boolean
fast_dot1x_timers:
default: false
description: If set to true, sets default fast-timers with values calculated from ‘auth_servers_timeout’ and ‘auth_server_retries’ .
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:
$ref: '#/components/schemas/id'
inject_dhcp_option_82:
$ref: '#/components/schemas/wlan_inject_dhcp_option_82'
interface:
$ref: '#/components/schemas/wlan_interface'
isolation:
default: false
description: Whether to stop 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:
default: false
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:
default: false
description: Limit probe response base on some heuristic rules
type: boolean
max_idletime:
default: 1800
description: Max idle time in seconds
examples:
- 1800
maximum: 86400
minimum: 60
type: integer
max_num_clients:
default: 0
description: Maximum number of client connected to the SSID. `0` means unlimited
maximum: 128
minimum: 0
type: integer
mist_nac:
$ref: '#/components/schemas/wlan_mist_nac'
modified_time:
$ref: '#/components/schemas/modified_time'
msp_id:
$ref: '#/components/schemas/msp_id'
mxtunnel_id:
deprecated: true
description: (deprecated, use mxtunnel_ids instead) when `interface`==`mxtunnel`, id of the Mist Tunnel
format: uuid
type: string
mxtunnel_ids:
$ref: '#/components/schemas/wlan_mxtunnel_ids'
mxtunnel_name:
$ref: '#/components/schemas/wlan_mxtunnel_name'
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:
$ref: '#/components/schemas/org_id'
portal:
$ref: '#/components/schemas/wlan_portal'
portal_allowed_hostnames:
$ref: '#/components/schemas/wlan_portal_allowed_hostnames'
portal_allowed_subnets:
$ref: '#/components/schemas/wlan_portal_allowed_subnets'
portal_api_secret:
default: ''
description: API secret (auto-generated) that can be used to sign guest authorization requests, only generated when auth is set to `external`
examples:
- EIfPMOykI3lMlDdNPub2WcbqT6dNOtWwmYHAd6bY
type:
- string
- 'null'
portal_denied_hostnames:
$ref: '#/components/schemas/wlan_portal_denied_hostnames'
portal_image:
default: ''
description: Url of portal background image
examples:
- https://url/to/image.png
format: uri
readOnly: true
type:
- string
- 'null'
portal_sso_url:
description: URL used in the SSO process, auto-generated when auth is set to `sso`
readOnly: true
type:
- string
- 'null'
portal_template_url:
default: ''
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.
readOnly: true
type:
- string
- 'null'
qos:
$ref: '#/components/schemas/wlan_qos'
radsec:
$ref: '#/components/schemas/radsec'
rateset:
$ref: '#/components/schemas/wlan_rateset'
reconnect_clients_when_roaming_mxcluster:
default: false
description: When different mxcluster is on different subnet, we'd want to disconnect clients (so they'll reconnect and get new IPs)
type: boolean
roam_mode:
$ref: '#/components/schemas/wlan_roam_mode'
schedule:
$ref: '#/components/schemas/wlan_schedule'
site_id:
$ref: '#/components/schemas/site_id'
sle_excluded:
default: false
description: Whether to exclude this WLAN from SLE metrics
type: boolean
ssid:
description: Name of the SSID
examples:
- corporate
type: string
template_id:
default: ''
format: uuid
type:
- string
- 'null'
thumbnail:
default: ''
description: Url of portal background image thumbnail
format: uri
readOnly: true
type:
- string
- 'null'
use_eapol_v1:
default: false
description: If `auth.type`==`eap` or `auth.type`==`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:
$ref: '#/components/schemas/wlan_vlan_id_with_variable'
vlan_ids:
$ref: '#/components/schemas/wlan_vlan_ids'
vlan_pooling:
default: false
description: Requires `vlan_enabled`==`true` to be set to `true`. Vlan pooling allows AP to place client on different VLAN using a deterministic algorithm
type: boolean
wlan_limit_down:
$ref: '#/components/schemas/wlan_limit'
wlan_limit_down_enabled:
default: false
description: If downlink limiting for whole wlan is enabled
type: boolean
wlan_limit_up:
$ref: '#/components/schemas/wlan_limit'
wlan_limit_up_enabled:
default: false
description: If uplink limiting for whole wlan is enabled
type: boolean
wxtag_ids:
$ref: '#/components/schemas/wlan_wxtag_ids'
wxtunnel_id:
default: ''
description: When `interface`=`wxtunnel`, id of the WXLAN Tunnel
type:
- string
- 'null'
wxtunnel_remote_id:
default: ''
description: When `interface`=`wxtunnel`, remote tunnel identifier
type:
- string
- 'null'
required:
- ssid
type: object
image_import:
additionalProperties: false
properties:
file:
contentMediaType: application/octet-stream
description: Binary file
type: string
json:
type: string
required:
- file
type: object
sponsor_link_validity_duration:
anyOf:
- default: 60
maximum: 60
minimum: 5
type: integer
- type: string
description: Optional if `sponsor_enabled`==`true`. How long to remain valid sponsored guest request approve/deny link received in email, in minutes. Value is between 5 and 60.
portal_template_alignment:
default: center
description: 'defines alignment on portal. enum: `center`, `left`, `right`'
enum:
- center
- left
- right
type: string
wlan_airwatch:
additionalProperties: false
description: Airwatch wlan settings
properties:
api_key:
default: ''
description: API Key
examples:
- aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg=="
type: string
console_url:
default: ''
description: Console URL
examples:
- https://hs1.airwatchportals.com
type: string
enabled:
default: false
type: boolean
password:
default: ''
description: Password
examples:
- user1
format: password
type: string
username:
default: ''
description: Username
examples:
- test123
type: string
type: object
wlan_portal_facebook_email_domains:
default: []
description: Optional if `facebook_enabled`==`true`. Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
items:
type: string
type: array
wlan_vlan_ids:
oneOf:
- $ref: '#/components/schemas/wlan_vlan_ids_string'
- $ref: '#/components/schemas/wlan_vlan_ids_list'
additional_vlan_ids:
anyOf:
- type: string
- $ref: '#/components/schemas/additional_vlan_ids_array'
description: List or Comma separated list of additional VLAN IDs (on the LAN side or from other WLANs) should we be forwarding bonjour queries/responses
wlan_portal_sponsors_object:
additionalProperties:
type: string
examples:
- sponsor1@company.com: FirstName1 LastName1
sponsor2@company.com: FirstName2 LastName2
type: object
wlan_qos:
additionalProperties: false
properties:
class:
$ref: '#/components/schemas/wlan_qos_class'
overwrite:
default: false
description: Whether to overwrite QoS
type: boolean
type: object
radius_keywrap_format:
description: 'enum: `ascii`, `hex`'
enum:
- ascii
- hex
type: string
wlan_portal_sponsors_list:
items:
type: string
type: array
wlan_hotspot20_rcoi:
examples:
- - 5A03BA0000
items:
type: string
type: array
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'
wlan_cisco_cwa_blocked_subnets:
description: List of blocked CIDRs
items:
examples:
- 192.168.0.0/16
type: string
type: array
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_mist_nac:
additionalProperties: false
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 Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled.
examples:
- 60
maximum: 65535
minimum: 0
type: integer
auth_servers_retries:
default: 2
description: Radius auth session retries. Following fast timers are set if `fast_dot1x_timers` knob is enabled. "retries" are set to value of `auth_servers_timeout`. "max-requests" is also set when setting `auth_servers_retries` is set to default value to 3.
examples:
- 3
maximum: 10
minimum: 1
type: integer
auth_servers_timeout:
default: 5
description: Radius auth session timeout. Following fast timers are set if `fast_dot1x_timers` knob is enabled. "quite-period" and "transmit-period" are set to half the value of `auth_servers_timeout`. "supplicant-timeout" is also set when setting `auth_servers_timeout` is set to default value of 10.
examples:
- 5
maximum: 30
minimum: 1
type: integer
coa_enabled:
default: false
description: Allows a RADIUS server to dynamically modify the authorization status of a user session.
type: boolean
coa_port:
description: the communication port used for “Change of Authorization” (CoA) messages
examples:
- 3799
maximum: 65535
minimum: 1
type: integer
enabled:
default: false
description: "When enabled:\n * `auth_servers` is ignored\n * `acct_servers` is ignored\n * `auth_servers_*` are ignored\n * `coa_servers` is ignored\n * `radsec` is ignored\n * `coa_enabled` is assumed"
type: boolean
fast_dot1x_timers:
default: false
description: If set to true, sets default fast-timers with values calculated from `auth_servers_timeout` and `auth_server_retries`.
type: boolean
network:
description: Which network the mist nac server resides in
examples:
- default
type:
- string
- 'null'
source_ip:
description: In case there is a static IP for this network, we can specify it using source ip
examples:
- 1.2.3.4
type:
- string
- 'null'
type: object
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'
response_http429:
additionalProperties: false
properties:
detail:
examples:
- Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
type: string
type: object
hours:
additionalProperties: false
description: Days/Hours of operation filter, the available days (mon, tue, wed, thu, fri, sat, sun)
properties:
fri:
$ref: '#/components/schemas/hour'
mon:
$ref: '#/components/schemas/hour'
sat:
$ref: '#/components/schemas/hour'
sun:
$ref: '#/components/schemas/hour'
thu:
$ref: '#/components/schemas/hour'
tue:
$ref: '#/components/schemas/hour'
wed:
$ref: '#/components/schemas/hour'
type: object
wlan_limit:
anyOf:
- maximum: 999000
minimum: 1
type: integer
- type: string
description: In kbps, value from 1 to 999000
wlan_dynamic_vlan:
additionalProperties: false
description: For 802.1x
properties:
default_vlan_id:
$ref: '#/components/schemas/wlan_dynamic_vlan_default_vlan_id_deprecated'
default_vlan_ids:
$ref: '#/components/schemas/wlan_dynamic_vlan_default_vlan_ids'
enabled:
default: false
description: Requires `vlan_enabled`==`true` to be set to `true`. Whether to enable dynamic vlan
type: boolean
local_vlan_ids:
$ref: '#/components/schemas/wlan_dynamic_vlan_local_vlan_ids'
type:
$ref: '#/components/schemas/wlan_dynamic_vlan_type'
vlans:
additionalProperties:
type: string
description: "Map between vlan_id (as string) to airespace interface names (comma-separated) or null for standard mapping\n * if `dynamic_vlan.type`==`standard`, property key is the Vlan ID and property value is \\\"\\\"\n * if `dynamic_vlan.type`==`airespace-interface-name`, property key is the Vlan ID and property value is the Airespace Interface Name"
examples:
- '131': default
'322': fast,video
type: object
type:
- object
- 'null'
wlan_bonjour_service_properties_radius_groups:
description: Optional, if the service is further restricted for certain RADIUS groups
items:
type: string
type: array
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'
org_id:
examples:
- a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
format: uuid
readOnly: true
type: string
wlan_app_qos_others:
items:
$ref: '#/components/schemas/wlan_app_qos_others_item'
type: array
uniqueItems: true
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
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
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
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_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
response_http403:
additionalProperties: false
properties:
detail:
examples:
- You do not have permission to perform this action.
type: string
type: object
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
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
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_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:
additionalProperties: false
description: Authentication wlan settings
properties:
anticlog_threshold:
default: 16
description: SAE anti-clogging token threshold
examples:
- 16
maximum: 32
minimum: 16
type: integer
eap_reauth:
default: false
description: Whether to trigger EAP reauth when the session ends
type: boolean
enable_beacon_protection:
default: false
description: Enable Beacon Protection; default is false for better compatibility
type: boolean
enable_gcmp256:
default: false
description: Enable GCMP-256 encryption suite; default is false for better compatibility
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:
$ref: '#/components/schemas/wlan_auth_keys'
multi_psk_only:
default: false
description: When `type`==`psk`, whether to only use multi_psk
type: boolean
owe:
$ref: '#/components/schemas/wlan_auth_owe'
pairwise:
$ref: '#/components/schemas/wlan_auth_pairwise'
private_wlan:
default: false
description: When `multi_psk_only`==`true`, whether private wlan is enabled
type: boolean
psk:
default: ''
description: When `type`==`psk`, 8-64 characters, or 64 hex characters
examples:
- foryoureyesonly
maxLength: 64
minLength: 8
type:
- string
- 'null'
type:
$ref: '#/components/schemas/wlan_auth_type'
wep_as_secondary_auth:
default: false
description: Enable WEP as secondary auth
type: boolean
required:
- type
type: object
radsec_server:
additionalProperties: false
properties:
host:
examples:
- 1.1.1.1
type: string
port:
examples:
- 1812
maximum: 65535
minimum: 1
type: integer
type: object
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
site_id:
examples:
- 441a1214-6928-442a-8e92-e1d34b8ec6a6
format: uuid
readOnly: true
type: string
wlan_portal_template:
properties:
portal_template:
$ref: '#/components/schemas/wlan_portal_template_setting'
type: object
response_http404:
additionalProperties: false
properties:
id:
type: string
type: object
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_portal_amazon_email_domains:
default: []
description: Optional if `amazon_enabled`==`true`. Matches authenticated user email against provided domains. If null or [], all authenticated emails will be allowed.
items:
type: string
type: array
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
wlan_datarates_legacy_item:
description: 'enum: `1`, `11`, `11b`, `12`, `12b`, `18`, `18b`, `1b`, `2`, `24`, `24b`, `2b`, `36`, `36b`, `48`, `48b`, `5.5`, `5.5b`, `54`, `54b`, `6`, `6b`, `9`, `9b`'
enum:
- '1'
- '11'
- 11b
- '12'
- 12b
- '18'
- 18b
- 1b
- '2'
- '24'
- 24b
- 2b
- '36'
- 36b
- '48'
- 48b
- '5.5'
- 5.5b
- '54'
- 54b
- '6'
- 6b
- '9'
- 9b
type: string
response_http400:
additionalProperties: false
properties:
detail:
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
type: string
type: object
wlan_auth_owe:
default: disabled
description: 'if `type`==`open`. enum: `disabled`, `enabled` (means transition mode), `required`'
enum:
- disabled
- enabled
- required
type: string
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
wlan_app_qos_others_item:
additionalProperties: false
properties:
dscp:
$ref: '#/components/schemas/dscp'
dst_subnet:
examples:
- 10.2.0.0/16
type: string
port_ranges:
examples:
- 80,1024-6553
type: string
protocol:
examples:
- udp
type: string
src_subnet:
examples:
- 10.2.0.0/16
type: string
type: object
wlans:
items:
$ref: '#/components/schemas/wlan'
type: array
dscp:
anyOf:
- type: string
- maximum: 63
minimum: 0
type: integer
description: DSCP value range between 0 and 63
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
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_app_qos_apps_properties:
additionalProperties: false
properties:
dscp:
$ref: '#/components/schemas/dscp'
dst_subnet:
description: Subnet filter is not required but helps AP to only inspect certain traffic (thus reducing AP load)
type: string
src_subnet:
description: Subnet filter is not required but helps AP to only inspect certain traffic (thus reducing AP load)
type: string
type: object
wlan_inject_dhcp_option_82:
additionalProperties: false
properties:
circuit_id:
description: "Information to set in the `circuit_id` field of the DHCP Option 82. It is possible to use static string or the following variables (e.g. `{{SSID}}:{{AP_MAC}}`):\n * {{AP_MAC}}\n * {{AP_MAC_DASHED}}\n * {{AP_MODEL}}\n * {{AP_NAME}}\n * {{SITE_NAME}}\n * {{SSID}}"
examples:
- '{{SSID}}:{{AP_MAC}}'
type: string
enabled:
default: false
description: Whether to inject option 82 when forwarding DHCP packets
type: boolean
type: object
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_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
wlan_portal_allowed_hostnames:
default: []
description: List of hostnames without http(s):// (matched by substring)
examples:
- - snapchat.com
- ibm.com
items:
type: string
type: array
modified_time:
description: When the object has been modified for the last time, in epoch
format: double
readOnly: true
type: number
wlan_app_limit:
additionalProperties: false
description: Bandwidth limiting for apps (applies to up/down)
properties:
apps:
additionalProperties:
type: integer
default: {}
description: "Map from app key to bandwidth in kbps. \nProperty key is the app key, defined in Get Application List"
examples:
- dropbox: 300
netflix: 60
type: object
enabled:
default: false
type: boolean
wxtag_ids:
additionalProperties:
type: integer
default: {}
description: Map from wxtag_id of Hostname Wxlan Tags to bandwidth in kbps. Property key is the `wxtag_id`
examples:
- f99862d9-2726-931f-7559-3dfdf5d070d3: 30
type: object
type: object
responses:
Portaltemplate:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/PortaltemplateExample'
schema:
$ref: '#/components/schemas/wlan_portal_template'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/PortaltemplateExample'
schema:
$ref: '#/components/schemas/wlan_portal_template'
description: OK
HTTP403:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP403Example'
schema:
$ref: '#/components/schemas/response_http403'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP403Example'
schema:
$ref: '#/components/schemas/response_http403'
description: Permission Denied
OK:
description: OK
HTTP401:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP401Example'
schema:
$ref: '#/components/schemas/response_http401'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP401Example'
schema:
$ref: '#/components/schemas/response_http401'
description: Unauthorized
WlansArray:
content:
application/json:
schema:
$ref: '#/components/schemas/wlans'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/wlans'
description: OK
Wlan:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/WlanExample'
schema:
$ref: '#/components/schemas/wlan'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/WlanExample'
schema:
$ref: '#/components/schemas/wlan'
description: OK
HTTP404:
content:
application/json:
schema:
$ref: '#/components/schemas/response_http404'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/response_http404'
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
HTTP429:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP429Example'
schema:
$ref: '#/components/schemas/response_http429'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP429Example'
schema:
$ref: '#/components/schemas/response_http429'
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
HTTP400:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/HTTP400Example'
schema:
$ref: '#/components/schemas/response_http400'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/HTTP400Example'
schema:
$ref: '#/components/schemas/response_http400'
description: Bad Syntax
parameters:
org_id:
in: path
name: org_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
wlan_id:
in: path
name: wlan_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
page:
in: query
name: page
schema:
default: 1
minimum: 1
type: integer
limit:
in: query
name: limit
schema:
default: 100
minimum: 0
type: integer
examples:
HTTP403Example:
value:
detail: You do not have permission to perform this action.
PortaltemplateExample:
value:
portal_template:
accessCodeAlternateEmail: string
alignment: left
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: 5
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
WlanExample:
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
HTTP429Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
HTTP400Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
HTTP401Example:
value:
detail: Authentication credentials were not provided.
securitySchemes:
apiToken:
description: "Like many other API providers, it’s also possible to generate API Tokens to be used (in HTTP Header) for authentication. An API token ties to a Admin with equal or less privileges.\n\n**Format**:\n API Token value format is `Token {apitoken}`\n\n**Notes**:\n* an API token generated for a specific admin has the same privilege as the user\n* an API token will be automatically removed if not used for > 90 days\n* SSO admins cannot generate these API tokens. Refer Org level API tokens which can have privileges of a specific Org/Site for more information."
in: header
name: Authorization
type: apiKey
basicAuth:
description: While our current UI uses Session / Cookie-based authentication, it’s also possible to do Basic Auth.
scheme: basic
type: http
csrfToken:
description: "This protects the website against [Cross Site Request Forgery](https://en.wikipedia.org/wiki/Cross-site_request_forgery), all the POST / PUT / DELETE APIs needs to have CSRF token in the AJAX Request header when using Login/Password authentication (with or without MFA)\n\n\nThe CSRF Token is sent back by Mist in the Cookies from the Login Response API Call:\n`cookies[csrftoken]` \n\nThe CSRF Token must be added in the HTTP Request Headers:\n```\nX-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx\n```"
in: header
name: X-CSRFToken
type: apiKey