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 Sites 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: 'A Site Wlan is a wireless local area network that is configured and applied to a specific site within an organization. It allows for the creation and management of wireless network settings, such as SSIDs (service set identifiers), authentication settings, VLAN configurations, etc... for a particular site. Site Wlans are created and managed at the site level and can only be referenced and used within that particular site.' name: Sites Wlans paths: /api/v1/sites/{site_id}/wlans: parameters: - $ref: '#/components/parameters/site_id' get: description: Get List of Site WLANs operationId: listSiteWlans 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: listSiteWlans tags: - Sites Wlans post: description: Create Site WLAN operationId: createSiteWlan requestBody: content: application/json: examples: Example: value: acct_immediate_update: false acct_interim_interval: 0 acct_servers: - host: 1.2.3.4 keywrap_enabled: true keywrap_format: hex keywrap_kek: '1122334455' keywrap_mack: '1122334455' port: 1813 secret: testing123 airwatch: api_key: aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg==" console_url: https://hs1.airwatchportals.com enabled: true password: user1 username: test123 allow_ipv6_ndp: true allow_mdns: false allow_ssdp: false ap_ids: - 497f6eca-6276-4993-bfeb-53cbbbbb6f08 app_limit: apps: dropbox: 300 netflix: 60 enabled: false wxtag_ids: f99862d9-2726-931f-7559-3dfdf5d070d3: 30 app_qos: apps: skype-business-video: dscp: 32 dst_subnet: 10.2.0.0/16 src_subnet: 10.2.0.0/16 enabled: true others: - dscp: 32 dst_subnet: 10.2.0.0/16 port_ranges: 80,1024-6553 protocol: udp src_subnet: 10.2.0.0/16 apply_to: site arp_filter: false auth: anticlog_threshold: 16 eap_reauth: false enable_mac_auth: false key_idx: 1 keys: - string multi_psk_only: false pairwise: - wpa2-ccmp private_wlan: true psk: foryoureyesonly type: psk wep_as_secondary_auth: true auth_server_selection: ordered auth_servers: - host: 1.2.3.4 keywrap_enabled: true keywrap_format: hex keywrap_kek: '1122334455' keywrap_mack: '1122334455' port: 1812 secret: testing123 auth_servers_nas_id: 5c5b350e0101-nas auth_servers_nas_ip: 15.3.1.5 auth_servers_retries: 5 auth_servers_timeout: 5 band: string 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 cisco_cwa: allowed_hostnames: - snapchat.com allowed_subnets: - 63.5.3.0/24 blocked_subnets: - 192.168.0.0/16 enabled: false client_limit_down: 1000 client_limit_down_enabled: false client_limit_up: 512 client_limit_up_enabled: false coa_servers: - disable_event_timestamp_check: false enabled: false ip: 1.2.3.4 port: 3799 secret: testing456 disable_11ax: false disable_ht_vht_rates: false disable_uapsd: false disable_v1_roam_notify: false disable_v2_roam_notify: false disable_wmm: false dns_server_rewrite: enabled: false radius_groups: contractor: 172.1.1.1 guest: 8.8.8.8 dtim: 2 dynamic_psk: default_psk: foryoureyesonly default_vlan_id: 999 enabled: false source: cloud_psks 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 hotspot20: domain_name: - mist.com enabled: true nai_realms: - string operators: - google - att rcoi: - 5A03BA0000 venue_name: some_name interface: all isolation: false l2_isolation: false legacy_overds: false limit_bcast: false limit_probe_response: true max_idletime: 1800 mist_nac: enabled: false no_static_dns: false no_static_ip: 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: createSiteWlan tags: - Sites Wlans /api/v1/sites/{site_id}/wlans/derived: parameters: - $ref: '#/components/parameters/site_id' get: description: Get the list of derived Wlans for a Site operationId: listSiteWlansDerived parameters: - description: Whether to resolve SITE_VARS in: query name: resolve schema: default: false examples: - true type: boolean - description: Filter by WLAN ID in: query name: wlan_id schema: examples: - 8bfc2490-d726-3587-038d-cb2e71bd2330 type: string 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: listSiteWlansDerived tags: - Sites Wlans /api/v1/sites/{site_id}/wlans/{wlan_id}: parameters: - $ref: '#/components/parameters/site_id' - $ref: '#/components/parameters/wlan_id' delete: description: Delete Site WLAN operationId: deleteSiteWlan 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: deleteSiteWlan tags: - Sites Wlans get: description: Get Site WLAN operationId: getSiteWlan 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: getSiteWlan tags: - Sites Wlans put: description: Update Site WLAN operationId: updateSiteWlan requestBody: content: application/json: examples: Example: value: acct_immediate_update: false acct_interim_interval: 0 acct_servers: - host: 1.2.3.4 keywrap_enabled: true keywrap_format: hex keywrap_kek: '1122334455' keywrap_mack: '1122334455' port: 1813 secret: testing123 airwatch: api_key: aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg==" console_url: https://hs1.airwatchportals.com enabled: true password: user1 username: test123 allow_ipv6_ndp: true allow_mdns: false allow_ssdp: false ap_ids: - 497f6eca-6276-4993-bfeb-53cbbbbe6f08 app_limit: apps: dropbox: 300 netflix: 60 enabled: false wxtag_ids: f99862d9-2726-931f-7559-3dfdf5d070d3: 30 app_qos: apps: skype-business-video: dscp: 32 dst_subnet: 10.2.0.0/16 src_subnet: 10.2.0.0/16 enabled: true others: - dscp: 32 dst_subnet: 10.2.0.0/16 port_ranges: 80,1024-6553 protocol: udp src_subnet: 10.2.0.0/16 apply_to: site arp_filter: false auth: anticlog_threshold: 16 eap_reauth: false enable_mac_auth: false key_idx: 1 keys: - string multi_psk_only: false pairwise: - wpa2-ccmp private_wlan: true psk: foryoureyesonly type: psk wep_as_secondary_auth: true auth_server_selection: ordered auth_servers: - host: 1.2.3.4 keywrap_enabled: true keywrap_format: hex keywrap_kek: '1122334455' keywrap_mack: '1122334455' port: 1812 secret: testing123 auth_servers_nas_id: 5c5b350e0101-nas auth_servers_nas_ip: 15.3.1.5 auth_servers_retries: 5 auth_servers_timeout: 5 band: string 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 cisco_cwa: allowed_hostnames: - snapchat.com allowed_subnets: - 63.5.3.0/24 blocked_subnets: - 192.168.0.0/16 enabled: false client_limit_down: 1000 client_limit_down_enabled: false client_limit_up: 512 client_limit_up_enabled: false coa_servers: - disable_event_timestamp_check: false enabled: false ip: 1.2.3.4 port: 3799 secret: testing456 disable_11ax: false disable_ht_vht_rates: false disable_uapsd: false disable_v1_roam_notify: false disable_v2_roam_notify: false disable_wmm: false dns_server_rewrite: enabled: false radius_groups: contractor: 172.1.1.1 guest: 8.8.8.8 dtim: 2 dynamic_psk: default_psk: foryoureyesonly default_vlan_id: 999 enabled: false source: cloud_psks 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 hotspot20: domain_name: - mist.com enabled: true nai_realms: - string operators: - google - att rcoi: - 5A03BA0000 venue_name: some_name interface: all isolation: false l2_isolation: false legacy_overds: false limit_bcast: false limit_probe_response: true max_idletime: 1800 mist_nac: enabled: false no_static_dns: false no_static_ip: 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: updateSiteWlan tags: - Sites Wlans /api/v1/sites/{site_id}/wlans/{wlan_id}/portal_image: parameters: - $ref: '#/components/parameters/site_id' - $ref: '#/components/parameters/wlan_id' delete: description: Delete Site WLAN Portal Image operationId: deleteSiteWlanPortalImage 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: deleteSiteWlanPortalImage tags: - Sites Wlans post: description: WLAN Portal Image Upload operationId: uploadSiteWlanPortalImage 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: uploadSiteWlanPortalImage tags: - Sites Wlans /api/v1/sites/{site_id}/wlans/{wlan_id}/portal_template: parameters: - $ref: '#/components/parameters/site_id' - $ref: '#/components/parameters/wlan_id' put: description: 'Update a Portal Template #### 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: updateSiteWlanPortalTemplate requestBody: content: application/json: examples: Example: value: accessCodeAlternateEmail: string alignment: string authButtonAmazon: string authButtonAzure: string authButtonEmail: string authButtonFacebook: string authButtonGoogle: string authButtonMicrosoft: string authButtonPassphrase: string authButtonSms: string authButtonSponsor: string authLabel: string backLink: string color: string colorDark: string colorLight: string company: true companyError: string companyLabel: string email: true emailAccessDomainError: string emailCancel: string emailCodeError: string emailError: string emailFieldLabel: string emailLabel: string emailMessage: string emailSubmit: string emailTitle: string field1: true field1Error: string field1Label: string field1Required: true field2: true field2Error: string field2Label: string field2Required: true field3: true field3Error: string field3Label: string field3Required: true field4: true field4Error: string field4Label: string field4Required: true message: string name: true nameError: string nameLabel: string optout: true optoutLabel: string pageTitle: string passphraseCancel: string passphraseError: string passphraseLabel: string passphraseMessage: string passphraseSubmit: string passphraseTitle: string poweredBy: true requiredFieldLabel: string signInLabel: string smsCarrierDefault: string smsCarrierError: string smsCarrierFieldLabel: string smsCodeCancel: string smsCodeError: string smsCodeFieldLabel: string smsCodeMessage: string smsCodeSubmit: string smsCodeTitle: string smsCountryFieldLabel: string smsCountryFormat: string smsHaveAccessCode: string smsMessageFormat: string smsNumberCancel: string smsNumberError: string smsNumberFieldLabel: string smsNumberFormat: string smsNumberMessage: string smsNumberSubmit: string smsNumberTitle: string smsUsernameFormat: string smsValidityDuration: 0 sponsorBackLink: string sponsorCancel: string sponsorEmail: string sponsorEmailError: string sponsorEmailTemplate: string sponsorInfoApproved: string sponsorInfoDenied: string sponsorInfoPending: string sponsorName: string sponsorNameError: string sponsorNotePending: string sponsorStatusApproved: string sponsorStatusDenied: string sponsorStatusPending: string sponsorSubmit: string sponsorsFieldLabel: string tos: true tosAcceptLabel: string tosError: string tosLink: string tosText: string schema: $ref: '#/components/schemas/wlan_portal_template' description: Request Body responses: '200': $ref: '#/components/responses/Portaltemplate' '400': $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: updateSiteWlanPortalTemplate tags: - Sites 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 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. parameters: 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 site_id: in: path name: site_id required: true schema: examples: - 000000ab-00ab-00ab-00ab-0000000000ab format: uuid type: string limit: in: query name: limit schema: default: 100 minimum: 0 type: integer 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