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