openapi: 3.2.0
info:
title: Mist Orgs NAC Portals API
description: '> Version: **2607.1.1**
>
> Date: **August 17, 2026**
NOTE:
Some important API changes will be introduced.'
contact:
name: Thomas Munzer
email: tmunzer@juniper.net
version: 2607.1.1
servers:
- url: https://api.mist.com
variables: {}
- url: https://api.gc1.mist.com
variables: {}
- url: https://api.ac2.mist.com
variables: {}
- url: https://api.gc2.mist.com
variables: {}
- url: https://api.gc4.mist.com
variables: {}
- url: https://api.eu.mist.com
variables: {}
- url: https://api.gc3.mist.com
variables: {}
- url: https://api.ac6.mist.com
variables: {}
- url: https://api.gc6.mist.com
variables: {}
- url: https://api.ac5.mist.com
variables: {}
- url: https://api.gc5.mist.com
variables: {}
- url: https://api.gc7.mist.com
variables: {}
security:
- apiToken: []
- csrfToken: []
tags:
- name: Orgs NAC Portals
description: 'NAC Portals are for onboard Wireless and Wired client with 802.1X
The NAC Portal is a web-based interface that allows users to authenticate and
gain access to the network.'
paths:
/api/v1/orgs/{org_id}/nacportals:
parameters: []
get:
tags:
- Orgs NAC Portals
summary: listOrgNacPortals
description: List NAC portal configurations in the organization for guest portal, guest admin, or Marvis Client onboarding workflows.
operationId: listOrgNacPortals
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: limit
in: query
description: Maximum number of results to return per page
style: form
explode: true
schema:
minimum: 0
type: integer
contentEncoding: int32
default: 100
- name: page
in: query
description: Select the page number to return when using page-based pagination; starts at `1`
style: form
explode: true
schema:
minimum: 1
type: integer
contentEncoding: int32
default: 1
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/nac_portal'
description: List of NAC portal configurations
examples:
- - access_type: wireless
additional_cacerts:
- '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/json
examples:
Example:
value:
- access_type: wireless
additional_cacerts:
- '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
application/vnd.api+json:
schema:
type: array
items:
$ref: '#/components/schemas/nac_portal'
description: List of NAC portal configurations
examples:
- - access_type: wireless
additional_cacerts:
- '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/vnd.api+json
examples:
Example:
value:
- access_type: wireless
additional_cacerts:
- '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
post:
tags:
- Orgs NAC Portals
summary: createOrgNacPortal
description: Create a NAC portal configuration for guest access, guest administration, or Marvis Client certificate onboarding.
operationId: createOrgNacPortal
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal'
required: false
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/vnd.api+json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}:
parameters: []
delete:
tags:
- Orgs NAC Portals
summary: deleteOrgNacPortal
description: Delete an organization NAC portal configuration by NAC portal ID.
operationId: deleteOrgNacPortal
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
responses:
'200':
description: OK
headers: {}
content: {}
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
get:
tags:
- Orgs NAC Portals
summary: getOrgNacPortal
description: Retrieve configuration details for a specific NAC portal, including portal type, SSID, SSO, guest portal, certificate, and template settings.
operationId: getOrgNacPortal
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/vnd.api+json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
put:
tags:
- Orgs NAC Portals
summary: updateOrgNacPortal
description: Update a NAC portal configuration, including portal type, SSID, SSO, guest portal, certificate, and template settings.
operationId: updateOrgNacPortal
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal'
required: false
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/nac_portal'
- description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
examples:
- access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
contentMediaType: application/vnd.api+json
examples:
Example:
value:
access_type: wireless
cert_expire_time: 365
enable_location: false
enable_telemetry: true
expiry_notification_time: 2
name: get-wifi
notify_expiry: true
ssid: Corp
sso:
idp_cert: '-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIIP61/1qm/uDowDQYJKoZIhvcNAQELBQE
-----END CERTIFICATE-----'
idp_sign_algo: sha256
idp_sso_url: https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer: https://app.onelogin.com/saml/metadata/138130
nameid_format: email
sso_role_matching:
- assigned: user
match: Student
use_sso_role_for_cert: true
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/failures:
parameters: []
get:
tags:
- Orgs NAC Portals
summary: listOrgNacPortalSsoLatestFailures
description: List recent SAML SSO failures for a NAC portal within a selected time range.
operationId: listOrgNacPortalSsoLatestFailures
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: start
in: query
description: Lower bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d` or `-1w`
style: form
explode: true
schema:
type: string
- name: end
in: query
description: Upper bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d`, `-2h`, or `now`
style: form
explode: true
schema:
type: string
- name: duration
in: query
description: Time range duration for the query, using relative units such as `10m`, `7d`, or `2w`
style: form
explode: true
schema:
type: string
default: 1d
examples:
- 10m
- name: limit
in: query
description: Maximum number of results to return per page
style: form
explode: true
schema:
minimum: 0
type: integer
contentEncoding: int32
default: 100
- name: page
in: query
description: Select the page number to return when using page-based pagination; starts at `1`
style: form
explode: true
schema:
minimum: 1
type: integer
contentEncoding: int32
default: 1
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_sso_failure_search'
- description: Response containing recent SSO authentication failure records
examples:
- results:
- detail: string
saml_assertion_xml: string
timestamp: 0
contentMediaType: application/json
examples:
Example:
value:
results:
- detail: string
saml_assertion_xml: string
timestamp: 0
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_sso_failure_search'
- description: Response containing recent SSO authentication failure records
examples:
- results:
- detail: string
saml_assertion_xml: string
timestamp: 0
contentMediaType: application/vnd.api+json
examples:
Example:
value:
results:
- detail: string
saml_assertion_xml: string
timestamp: 0
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_image:
parameters: []
delete:
tags:
- Orgs NAC Portals
summary: deleteOrgNacPortalImage
description: Delete the custom background image for a NAC portal. If no image is configured, the NAC portal uses the default background image.
operationId: deleteOrgNacPortalImage
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
responses:
'200':
description: OK
headers: {}
content: {}
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
post:
tags:
- Orgs NAC Portals
summary: uploadOrgNacPortalImage
description: Upload a custom background image for a NAC portal.
operationId: uploadOrgNacPortalImage
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
requestBody:
content:
multipart/form-data:
encoding: {}
schema:
type: object
properties:
file:
type: string
description: Image binary payload to upload for the PSK portal
contentEncoding: base64
json:
type: string
description: Metadata JSON string describing the PSK portal image upload
contentMediaType: multipart/form-data
required: false
responses:
'200':
description: OK
headers: {}
content: {}
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_template:
parameters: []
put:
tags:
- Orgs NAC Portals
summary: updateOrgNacPortalTemplate
description: Update visual template settings for a NAC portal, including alignment, primary color, logo, and Powered by visibility.
operationId: updateOrgNacPortalTemplate
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal_template'
required: false
responses:
'200':
description: OK
headers: {}
content: {}
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata:
parameters: []
get:
tags:
- Orgs NAC Portals
summary: getOrgNacPortalSamlMetadata
description: Retrieve SAML service provider metadata for a NAC portal, including ACS URL, entity ID, logout URL, and metadata XML.
operationId: getOrgNacPortalSamlMetadata
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/saml_metadata'
- description: Read-only SAML and SCIM metadata generated for an SSO configuration
examples:
- acs_url: https://api.mist.com/api/v1/saml/llDfa13f/login
entity_id: https://api.mist.com/api/v1/saml/llDfa13f/login
logout_url: https://api.mist.com/api/v1/saml/llDfa13f/logout
metadata: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
contentMediaType: application/json
examples:
Example:
value:
acs_url: https://api.mist.com/api/v1/saml/llDfa13f/login
entity_id: https://api.mist.com/api/v1/saml/llDfa13f/login
logout_url: https://api.mist.com/api/v1/saml/llDfa13f/logout
metadata: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/saml_metadata'
- description: Read-only SAML and SCIM metadata generated for an SSO configuration
examples:
- acs_url: https://api.mist.com/api/v1/saml/llDfa13f/login
entity_id: https://api.mist.com/api/v1/saml/llDfa13f/login
logout_url: https://api.mist.com/api/v1/saml/llDfa13f/logout
metadata: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
contentMediaType: application/vnd.api+json
examples:
Example:
value:
acs_url: https://api.mist.com/api/v1/saml/llDfa13f/login
entity_id: https://api.mist.com/api/v1/saml/llDfa13f/login
logout_url: https://api.mist.com/api/v1/saml/llDfa13f/logout
metadata: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata.xml:
parameters: []
get:
tags:
- Orgs NAC Portals
summary: downloadOrgNacPortalSamlMetadata
description: 'Download NAC portal SAML service provider metadata as an XML document.
Example of metadata.xml:
```xml
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
Mist
```'
operationId: downloadOrgNacPortalSamlMetadata
parameters:
- name: org_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
- name: nacportal_id
in: path
description: ''
required: true
schema:
type: string
contentEncoding: uuid
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: string
description: File
contentEncoding: base64
contentMediaType: application/json
application/vnd.api+json:
schema:
type: string
description: File
contentEncoding: base64
contentMediaType: application/vnd.api+json
'400':
description: Bad Syntax
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http400'
- description: Standard HTTP 400 bad request error response
examples:
- detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
'401':
description: Unauthorized
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/json
examples:
Example:
value:
detail: Authentication credentials were not provided.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http401'
- description: Standard HTTP 401 authentication error response
examples:
- detail: Authentication credentials were not provided.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Authentication credentials were not provided.
'403':
description: Permission Denied
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/json
examples:
Example:
value:
detail: You do not have permission to perform this action.
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http403'
- description: Standard HTTP 403 permission error response
examples:
- detail: You do not have permission to perform this action.
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: You do not have permission to perform this action.
'404':
description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/json
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http404'
- description: Standard HTTP 404 not found error response
contentMediaType: application/vnd.api+json
'429':
description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
headers: {}
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
application/vnd.api+json:
schema:
allOf:
- $ref: '#/components/schemas/response_http429'
- description: Standard HTTP 429 rate limit error response
examples:
- detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
contentMediaType: application/vnd.api+json
examples:
Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
deprecated: false
components:
schemas:
response_sso_failure_search:
title: response_sso_failure_search
required:
- results
type: object
properties:
results:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/response_sso_failure_search_item'
description: SSO authentication failure records returned by the request
description: Response containing recent SSO authentication failure records
response_http403:
title: response_http403
type: object
properties:
detail:
type: string
description: Human-readable explanation of the permission error
examples:
- You do not have permission to perform this action.
description: Standard HTTP 403 permission error response
nac_portal_type2:
title: nac_portal_type2
enum:
- guest_admin
- guest_portal
- marvis_client
type: string
description: 'NAC portal mode, such as guest admin, guest portal, or Marvis client onboarding. enum: `guest_admin`, `guest_portal`, `marvis_client`.'
response_http400:
title: response_http400
type: object
properties:
detail:
type: string
description: Human-readable explanation of the bad request error
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
description: Standard HTTP 400 bad request error response
response_http401:
title: response_http401
type: object
properties:
detail:
type: string
description: Human-readable explanation of the authentication error
examples:
- Authentication credentials were not provided.
description: Standard HTTP 401 authentication error response
nac_portal_eap_type2:
title: nac_portal_eap_type2
enum:
- wpa2
- wpa3
type: string
description: 'EAP mode used when onboarding wireless clients through the NAC portal. enum: `wpa2`, `wpa3`.'
nac_portal_guest_portal2:
title: nac_portal_guest_portal2
type: object
properties:
auth:
allOf:
- $ref: '#/components/schemas/nac_portal_guest_portal_auth2'
- description: 'Mode presented by the NAC guest portal for user authentication. enum: `external`, `multi`, `none`.'
expire:
type: integer
description: If `auth`==`none` or `auth`==`multi`, whether to expire the guest after a certain time
contentEncoding: int32
examples:
- 1440
external_portal_url:
type: string
description: If `auth`==`external`, the URL to redirect the user to for authentication
examples:
- https://yourorg.com/external-guest-portal
force_reconnect:
type: boolean
description: Disconnect client (workaround for reauth issues)
forward:
type: boolean
description: If `auth`==`none` or `auth`==`multi`, whether to forward the user to the guest portal after authentication
examples:
- true
forward_url:
type: string
description: If `auth`==`none` or `auth`==`multi`, URL to forward the user to after authentication
examples:
- https://yourorg.com/guest-portal-redirect
max_num_devices:
maximum: 100
minimum: 0
type: integer
description: Maximum number of clients allowed per guest. 0 (default, unlimited), 1-100 range
contentEncoding: int32
default: 0
examples:
- 10
privacy:
type: boolean
description: If `auth`==`none` or `auth`==`multi`, whether to show the privacy policy
examples:
- true
description: Guest portal settings used when `type`==`guest_portal`
saml_metadata:
title: saml_metadata
type: object
properties:
acs_url:
type: string
description: If `idp_type`==`saml`, Assertion Consumer Service URL that receives SAML responses for this Mist SSO configuration
readOnly: true
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/login
entity_id:
type: string
description: If `idp_type`==`saml`, service provider entity ID for this Mist SSO configuration
readOnly: true
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/login
logout_url:
type: string
description: If `idp_type`==`saml`, Single Logout URL used by the identity provider to end the Mist SSO session
readOnly: true
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/logout
metadata:
type: string
description: If `idp_type`==`saml`, service provider metadata XML for configuring the identity provider
readOnly: true
examples:
- urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
scim_base_url:
type: string
description: If `idp_type`==`oauth` and `scim_enabled`==`true`, SCIM base URL that the identity provider uses to send provisioning requests to Mist
examples:
- https://scim.nac-staging.mistsys.com/S_41b2525a-e8b8-4809-8168-f1d8dcbe9735/azure/4d72b1dc-7503-4717-81ea-80d0125b886e
description: Read-only SAML and SCIM metadata generated for an SSO configuration
nac_portal_access_type2:
title: nac_portal_access_type2
enum:
- wireless
- wireless+wired
type: string
description: 'If `type`==`marvis_client`, whether onboarding applies to wireless clients or both wireless and wired clients. enum: `wireless`, `wireless+wired`.'
nac_portal_sso2:
title: nac_portal_sso2
type: object
properties:
idp_cert:
type: string
description: Identity provider certificate used to verify signed SAML responses
examples:
- '-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----'
idp_sign_algo:
allOf:
- $ref: '#/components/schemas/nac_portal_sso_idp_sign_algo2'
- description: 'Signing algorithm expected for SAML assertions from the identity provider. enum: `sha1`, `sha256`, `sha384`, `sha512`.'
idp_sso_url:
type: string
description: Identity provider Single Sign-On URL for SAML authentication
examples:
- https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
issuer:
type: string
description: Identity provider issuer URL for SAML authentication
examples:
- https://app.onelogin.com/saml/metadata/138130
nameid_format:
type: string
description: SAML NameID format expected from the identity provider
examples:
- email
sso_role_matching:
type: array
items:
$ref: '#/components/schemas/nac_portal_sso_role_matching'
description: Rules that map SSO role values from the identity provider to NAC portal roles
use_sso_role_for_cert:
type: boolean
description: Whether to include the matched SSO role in the issued certificate subject for later policy matching
description: SAML SSO settings for NAC portal authentication and role mapping
nac_portal_sso_idp_sign_algo2:
title: nac_portal_sso_idp_sign_algo2
enum:
- sha1
- sha256
- sha384
- sha512
type: string
description: 'Signing algorithm expected for SAML assertions from the identity provider. enum: `sha1`, `sha256`, `sha384`, `sha512`.'
nac_portal_sso_role_matching:
title: nac_portal_sso_role_matching
type: object
properties:
assigned:
type: string
description: NAC portal role assigned when the SSO role value matches
examples:
- user
match:
type: string
description: SSO role value to match from the SAML assertion
examples:
- Student
description: Mapping rule from an SSO role claim value to a NAC portal role
portal_template_alignment4:
title: portal_template_alignment4
enum:
- center
- left
- right
type: string
description: 'Text and content alignment for the NAC portal page. enum: `center`, `left`, `right`.'
nac_portal_guest_portal_auth2:
title: nac_portal_guest_portal_auth2
enum:
- external
- multi
- none
type: string
description: 'Mode presented by the NAC guest portal for user authentication. enum: `external`, `multi`, `none`.'
response_sso_failure_search_item:
title: response_sso_failure_search_item
required:
- detail
- saml_assertion_xml
- timestamp
type: object
properties:
detail:
type: string
description: Failure details reported for the SSO authentication attempt
saml_assertion_xml:
type: string
description: SAML assertion XML captured for the failed SSO authentication attempt
timestamp:
type: number
description: Epoch timestamp, in seconds, when the SSO authentication failure occurred
readOnly: true
description: SSO authentication failure record
response_http404:
title: response_http404
type: object
properties:
id:
type: string
description: Missing resource identifier, when the API includes one
description: Standard HTTP 404 not found error response
nac_portal_template:
title: nac_portal_template
type: object
properties:
alignment:
allOf:
- $ref: '#/components/schemas/portal_template_alignment4'
- description: 'Text and content alignment for the NAC portal page. enum: `center`, `left`, `right`.'
color:
type: string
description: Primary color used by the NAC portal template
default: '#1074bc'
logo:
type: string
description: Custom logo custom logo with "data:image/png;base64," format. default null, uses Juniper Mist Logo.
poweredBy:
type: boolean
description: Whether to hide "Powered by Juniper Mist" and email footers
default: false
description: Visual template settings for a NAC portal
response_http429:
title: response_http429
type: object
properties:
detail:
type: string
description: Human-readable explanation of the rate limit error
examples:
- Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
description: Standard HTTP 429 rate limit error response
nac_portal:
title: nac_portal
type: object
properties:
access_type:
allOf:
- $ref: '#/components/schemas/nac_portal_access_type2'
- description: 'If `type`==`marvis_client`, whether onboarding applies to wireless clients or both wireless and wired clients. enum: `wireless`, `wireless+wired`.'
additional_cacerts:
type: array
items:
type: string
description: Additional CA certificates trusted during NAC portal certificate onboarding
examples:
- - '-----BEGIN CERTIFICATE-----\\n-----END CERTIFICATE-----'
additional_nac_server_name:
type: array
items:
type: string
description: Optional list of additional NAC server names
examples:
- - nac1.corp.com
- nac2.corp.com
bg_image_url:
type: string
description: URL of the NAC portal background image
cert_expire_time:
type: integer
description: Validity duration for portal-issued client certificates, in days
contentEncoding: int32
examples:
- 365
eap_type:
allOf:
- $ref: '#/components/schemas/nac_portal_eap_type2'
- description: 'EAP mode used when onboarding wireless clients through the NAC portal. enum: `wpa2`, `wpa3`.'
enable_location:
type: boolean
description: Whether location data collection is enabled for devices onboarding through this NAC portal
default: false
enable_telemetry:
type: boolean
description: Model, version, fingering, events (connecting, disconnect, roaming), which ap
expiry_notification_time:
type: integer
description: Number of days before certificate expiration to start sending reminder notifications
contentEncoding: int32
id:
type: string
description: Unique identifier of the NAC portal
contentEncoding: uuid
readOnly: true
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
name:
type: string
description: Human-readable name of the NAC portal
examples:
- get-wifi
notify_expiry:
type: boolean
description: Whether to send reminder notifications before portal-issued certificates expire
org_id:
type: string
description: Organization that owns this NAC portal
contentEncoding: uuid
readOnly: true
examples:
- a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
portal:
allOf:
- $ref: '#/components/schemas/nac_portal_guest_portal2'
- description: Guest portal settings used when `type`==`guest_portal`
portal_authorize_jwt_secret:
type: string
description: If `type`==`guest_portal` and `auth`==`external`, the `portal_authorize_jwt_secret` will be generated
readOnly: true
examples:
- 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
portal_authorize_url:
type: string
description: If `type`==`guest_portal` and `auth`==`external`, the `portal_authorize_url` will be generated
readOnly: true
examples:
- https://guest-mistnac.mist.com/callback/be22bba7-8e22-e1cf-5185-b880816fe2cf/authorize
portal_sso_url:
type: string
description: If `type`==`guest_portal` or `type`==`guest_admin` and ans SSO is enabled, the `portal_sso_url` will be generated (which needs to be configured in your IDP
readOnly: true
examples:
- https://guest-mistnac.mist.com/callback/be22bba7-8e22-e1cf-5185-b880816fe2cf/acs
ssid:
type: string
description: Wireless SSID associated with the NAC portal
examples:
- Corp
sso:
allOf:
- $ref: '#/components/schemas/nac_portal_sso2'
- description: SAML SSO settings for NAC portal authentication and role mapping
template_url:
type: string
description: URL for the NAC portal template customization resource
thumbnail_url:
type: string
description: Read-only URL of the NAC portal background image thumbnail
readOnly: true
tos:
type: string
description: Terms of service text shown in the NAC portal
type:
allOf:
- $ref: '#/components/schemas/nac_portal_type2'
- description: 'NAC portal mode, such as guest admin, guest portal, or Marvis client onboarding. enum: `guest_admin`, `guest_portal`, `marvis_client`.'
ui_url:
type: string
description: If `auth`==`guest_admin`, the URL to the guest admin portal
readOnly: true
examples:
- https://guest-mistnac.mist.com/admin/51908ea7-dea7-4581-a578-f7320c4d5216/login
description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
securitySchemes:
apiToken:
type: apiKey
description: "Preferred authentication method for automation and integrations. Send the API token in the HTTP `Authorization` header.\n\n**Format**:\n `Authorization: Token {apitoken}`\n\n**Notes**:\n* An API token generated for a specific admin has the same privileges as that admin\n* An API token is automatically removed if it is not used for more than 90 days\n* SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed."
name: Authorization
in: header
csrfToken:
type: apiKey
description: 'Session-based authentication for browser or login/password flows. After a successful [Login]($e/Admins%20Login/login) request, Mist returns a `csrftoken` cookie. Send that value in the `X-CSRFToken` header on later API requests that use the login session.
**Format**:
```
X-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx
```
For automation, API Token authentication is preferred.'
name: X-CSRFToken
in: header