Juniper Mist AI Orgs Device Profiles API

While Templates / RF Templates / Network Templates / Gateway Templates provides powerful ways to control how a Device\'s configuration is derived for a Site. There are cases where you\'d like another level of control at the Org Level. A Device Profile contains a subset of Device\'s configurations you\'d like a device to have. It will be merged at runtime when we\'re provisioning an AP.

Operations 7

GET /api/v1/orgs/{org_id}/deviceprofiles listOrgDeviceProfiles #
POST /api/v1/orgs/{org_id}/deviceprofiles createOrgDeviceProfile #
DELETE /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id} deleteOrgDeviceProfile #
GET /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id} getOrgDeviceProfile #
PUT /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id} updateOrgDeviceProfile #
POST /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/assign assignOrgDeviceProfile #
POST /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/unassign unassignOrgDeviceProfile #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

mist-ai-orgs-device-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2604.1.1**

    >

    > Date: **May 13, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Orgs Device Profiles API
  version: 2604.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: 'While Templates / RF Templates / Network Templates / Gateway Templates provides powerful ways to control how a Device\''s configuration is derived for a Site. There are cases where you\''d like another level of control at the Org Level.

    A Device Profile contains a subset of Device\''s configurations you\''d like a device to have. It will be merged at runtime when we\''re provisioning an AP.'
  name: Orgs Device Profiles
paths:
  /api/v1/orgs/{org_id}/deviceprofiles:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org Device Profiles
      operationId: listOrgDeviceProfiles
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/DeviceprofilesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listOrgDeviceProfiles
      tags:
      - Orgs Device Profiles
    post:
      description: Create Device Profile
      operationId: createOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              deviceprofile_ap:
                value:
                  aeroscout:
                    enabled: false
                    host: aero.pvt.net
                    locate_connected: true
                  led:
                    brightness: 255
                    enabled: true
                  name: string
                  ntp_servers:
                  - 10.10.10.10
                  type: ap
                  usb_config:
                    cacert: string
                    channel: 3
                    enabled: true
                    host: 1.1.1.1
                    port: 0
                    type: imagotag
                    verify_cert: true
                    vlan_id: 1
              deviceprofile_hub:
                value:
                  dhcpd_config:
                    Corp-Mgmt:
                      dns_servers:
                      - 8.8.8.8
                      dns_suffix:
                      - stag.one
                      gateway: 10.3.172.9
                      ip_end: 10.3.172.99
                      ip_start: 10.3.172.50
                      type: local
                    Corp-lan:
                      dns_servers:
                      - 8.8.8.8
                      dns_suffix:
                      - stag.one
                      gateway: 10.3.171.9
                      ip_end: 10.3.171.99
                      ip_start: 10.3.171.50
                      type: local
                  dnsOverride: true
                  dns_servers:
                  - 10.3.20.201
                  - 10.3.51.222
                  - 1.1.1.1
                  dns_suffix:
                  - example.com
                  extra_routes:
                    10.101.0.0/16:
                      via: 10.3.100.10
                  ip_configs:
                    Corp-Core:
                      ip: 10.3.100.9
                      netmask: /24
                      type: static
                    Corp-Mgmt:
                      ip: 10.3.172.9
                      netmask: /24
                      type: static
                    Corp-lan:
                      ip: 10.3.171.9
                      netmask: /24
                      type: static
                  name: Demo
                  ntpOverride: true
                  ntp_servers:
                  - 10.3.51.222
                  path_preferences:
                    core:
                      paths:
                      - networks:
                        - Corp-Core
                        type: local
                      strategy: ordered
                    lab:
                      paths:
                      - networks:
                        - Corp-lan
                        type: local
                      strategy: ordered
                    mgmt:
                      paths:
                      - networks:
                        - Corp-Mgmt
                        type: local
                      strategy: ordered
                    untrust:
                      paths:
                      - name: wan
                        type: wan
                      strategy: ordered
                  port_config:
                    ge-0/0/0:
                      aggregated: false
                      ip_config:
                        gateway: 192.168.1.1
                        ip: 192.168.1.9
                        netmask: /24
                        type: static
                      name: wan
                      redundant: false
                      usage: wan
                      wan_type: broadband
                    ge-0/0/6-7:
                      ae_disable_lacp: false
                      ae_idx: '0'
                      ae_lacp_force_up: true
                      aggregated: true
                      networks:
                      - Corp-lan
                      - Corp-Mgmt
                      - Corp-Core
                      usage: lan
                  service_policies:
                  - action: allow
                    idp:
                      enabled: false
                    name: ITParis-Internal
                    path_preference: core
                    services:
                    - internal_dns
                    - drive
                    tenants:
                    - ITParis
                  type: gateway
            schema:
              $ref: '#/components/schemas/deviceprofile'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Deviceprofile'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: createOrgDeviceProfile
      tags:
      - Orgs Device Profiles
  /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/deviceprofile_id'
    delete:
      description: Delete Org Device Profile
      operationId: deleteOrgDeviceProfile
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteOrgDeviceProfile
      tags:
      - Orgs Device Profiles
    get:
      description: Get Org device Profile Details
      operationId: getOrgDeviceProfile
      responses:
        '200':
          $ref: '#/components/responses/Deviceprofile'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getOrgDeviceProfile
      tags:
      - Orgs Device Profiles
    put:
      description: Update Org Device Profile
      operationId: updateOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              deviceprofile_ap:
                value:
                  aeroscout:
                    enabled: true
                    host: aero.pvt.net
                  disable_eth1: true
                  disable_module: true
                  mesh:
                    enabled: true
                    group: 1
                    role: base
                  name: string
                  poe_passthrough: true
                  radio_config:
                    ant_gain_24: 0
                    ant_gain_5: 0
                    band_24:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 6
                      disabled: true
                      power: 8
                      preamble: auto
                    band_24_usage: '24'
                    band_5:
                      allow_rrm_disable: true
                      antenna_mode: default
                      bandwidth: 20
                      channel: 50
                      disabled: true
                      power_max: 8
                      power_min: 15
                      preamble: auto
                    scanning_enabled: true
                  type: ap
              deviceprofile_hub:
                value:
                  dhcpd_config:
                    Corp-Mgmt:
                      dns_servers:
                      - 8.8.8.8
                      dns_suffix:
                      - stag.one
                      gateway: 10.3.172.9
                      ip_end: 10.3.172.99
                      ip_start: 10.3.172.50
                      type: local
                    Corp-lan:
                      dns_servers:
                      - 8.8.8.8
                      dns_suffix:
                      - stag.one
                      gateway: 10.3.171.9
                      ip_end: 10.3.171.99
                      ip_start: 10.3.171.50
                      type: local
                  dnsOverride: true
                  dns_servers:
                  - 10.3.20.201
                  - 10.3.51.222
                  - 1.1.1.1
                  dns_suffix:
                  - example.com
                  extra_routes:
                    10.101.0.0/16:
                      via: 10.3.100.10
                  ip_configs:
                    Corp-Core:
                      ip: 10.3.100.9
                      netmask: /24
                      type: static
                    Corp-Mgmt:
                      ip: 10.3.172.9
                      netmask: /24
                      type: static
                    Corp-lan:
                      ip: 10.3.171.9
                      netmask: /24
                      type: static
                  name: ITParis
                  ntpOverride: true
                  ntp_servers:
                  - 10.3.51.222
                  path_preferences:
                    core:
                      paths:
                      - networks:
                        - Corp-Core
                        type: local
                      strategy: ordered
                    lab:
                      paths:
                      - networks:
                        - Corp-lan
                        type: local
                      strategy: ordered
                    mgmt:
                      paths:
                      - networks:
                        - Corp-Mgmt
                        type: local
                      strategy: ordered
                    untrust:
                      paths:
                      - name: wan
                        type: wan
                      strategy: ordered
                  port_config:
                    ge-0/0/0:
                      aggregated: false
                      ip_config:
                        gateway: 192.168.1.1
                        ip: 192.168.1.9
                        netmask: /24
                        type: static
                      name: wan
                      redundant: false
                      traffic_shaping:
                        enabled: false
                      usage: wan
                      wan_type: broadband
                    ge-0/0/6-7:
                      ae_disable_lacp: false
                      ae_idx: '0'
                      ae_lacp_force_up: true
                      aggregated: true
                      networks:
                      - Corp-lan
                      - Corp-Mgmt
                      - Corp-Core
                      usage: lan
                  service_policies:
                  - action: allow
                    idp:
                      enabled: false
                    name: ITParis-Internal
                    path_preference: core
                    services:
                    - internal_dns
                    - drive
                    tenants:
                    - ITParis
                  - action: deny
                    idp:
                      enabled: false
                    name: ITParis-internet
                    path_preference: untrust
                    services:
                    - internet_any
                    tenants:
                    - ITParis
                  type: gateway
            schema:
              $ref: '#/components/schemas/deviceprofile'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Deviceprofile'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateOrgDeviceProfile
      tags:
      - Orgs Device Profiles
  /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/assign:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/deviceprofile_id'
    post:
      description: Assign Org Device Profile to Devices
      operationId: assignOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  macs:
                  - 5c5b350e0001
                  - 5c5b350e0003
            schema:
              $ref: '#/components/schemas/mac_addresses'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/AssignSuccess'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: assignOrgDeviceProfile
      tags:
      - Orgs Device Profiles
  /api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/unassign:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/deviceprofile_id'
    post:
      description: Unassign Org Device Profile from Devices
      operationId: unassignOrgDeviceProfile
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  macs:
                  - 5c5b350e0001
                  - 5c5b350e0003
            schema:
              $ref: '#/components/schemas/mac_addresses'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/AssignSuccess'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: unassignOrgDeviceProfile
      tags:
      - Orgs Device Profiles
components:
  schemas:
    switch_port_usage_dynamic_rule:
      additionalProperties: false
      properties:
        description:
          description: Optional description of the rule
          type: string
        equals:
          type: string
        equals_any:
          $ref: '#/components/schemas/switch_port_usage_dynamic_rule_equals_any'
        expression:
          description: '"[0:3]":"abcdef" -> "abc"

            "split(.)[1]": "a.b.c" -> "b"

            "split(-)[1][0:3]: "a1234-b5678-c90" -> "b56"'
          type: string
        src:
          $ref: '#/components/schemas/switch_port_usage_dynamic_rule_src'
        usage:
          description: '`port_usage` name'
          type: string
      required:
      - src
      type: object
    switch_mist_nac:
      additionalProperties: false
      description: Enable mist_nac to use RadSec
      properties:
        enabled:
          type: boolean
        network:
          type: string
      type: object
    switch_dhcpd_config_property:
      additionalProperties: false
      description: the Property key is the network name. In case of DHCP relay, it's common for many networks to use the same dhcp relay, comma-separated network names can be used here (e.g. "net1,net2")
      properties:
        dns_servers:
          $ref: '#/components/schemas/switch_dhcpd_config_dns_servers'
        dns_suffix:
          $ref: '#/components/schemas/switch_dhcpd_config_dns_suffix'
        fixed_bindings:
          $ref: '#/components/schemas/switch_dhcpd_config_fixed_bindings'
        gateway:
          description: If `type`==`server` - optional, `ip` will be used if not provided
          examples:
          - 192.168.70.1
          type: string
        ip_end:
          description: If `type`==`server`
          examples:
          - 192.168.70.200
          type: string
        ip_end6:
          description: If `type6`==`server`
          examples:
          - 2607:f8b0:4005:808::ff
          type: string
        ip_start:
          description: If `type`==`server`
          examples:
          - 192.168.70.100
          type: string
        ip_start6:
          description: If `type6`==`server`
          examples:
          - 2607:f8b0:4005:808::2
          type: string
        lease_time:
          default: 86400
          description: In seconds, lease time has to be between 3600 [1hr] - 604800 [1 week], default is 86400 [1 day]
          maximum: 604800
          minimum: 3600
          type: integer
        options:
          $ref: '#/components/schemas/switch_dhcpd_config_options'
        server_id_override:
          default: false
          description: "`server_id_override`==`true` means the device, when acts as DHCP relay and forwards DHCP responses from DHCP server to clients, \nshould overwrite the Sever Identifier option (i.e. DHCP option 54) in DHCP responses with its own IP address."
          type: boolean
        servers:
          $ref: '#/components/schemas/dhcpd_config_servers'
        servers6:
          $ref: '#/components/schemas/dhcpd_config_servers6'
        type:
          $ref: '#/components/schemas/switch_dhcpd_config_type'
        type6:
          $ref: '#/components/schemas/switch_dhcpd_config_type6'
        vendor_encapsulated:
          $ref: '#/components/schemas/switch_dhcpd_config_vendor_options'
      type: object
    service_policy_skyatp_dns_tunnel_detection_profile:
      description: 'enum: `default`, `standard`, `strict`'
      enum:
      - default
      - standard
      - strict
      type: string
    dhcpd_config_property:
      additionalProperties: false
      properties:
        dns_servers:
          $ref: '#/components/schemas/dhcpd_config_dns_servers'
        dns_suffix:
          $ref: '#/components/schemas/dhcpd_config_dns_suffix'
        fixed_bindings:
          $ref: '#/components/schemas/dhcpd_config_fixed_bindings'
        gateway:
          description: If `type`==`local` - optional, `ip` will be used if not provided
          examples:
          - 192.168.70.1
          type: string
        ip6_end:
          description: If `type6`==`local`
          examples:
          - 2607:f8b0:4005:808::ff
          type: string
        ip6_start:
          description: If `type6`==`local`
          examples:
          - 2607:f8b0:4005:808::2
          type: string
        ip_end:
          description: If `type`==`local`
          examples:
          - 192.168.70.200
          type: string
        ip_start:
          description: If `type`==`local`
          examples:
          - 192.168.70.100
          type: string
        lease_time:
          default: 86400
          description: In seconds, lease time has to be between 3600 [1hr] - 604800 [1 week], default is 86400 [1 day]
          maximum: 604800
          minimum: 3600
          type: integer
        options:
          $ref: '#/components/schemas/dhcpd_config_options'
        server_id_override:
          default: false
          description: "`server_id_override`==`true` means the device, when acts as DHCP relay and forwards DHCP responses from DHCP server to clients, \nshould overwrite the Sever Identifier option (i.e. DHCP option 54) in DHCP responses with its own IP address."
          type: boolean
        servers:
          $ref: '#/components/schemas/dhcpd_config_servers'
        serversv6:
          $ref: '#/components/schemas/dhcpd_config_servers6'
        type:
          $ref: '#/components/schemas/dhcpd_config_type'
        type6:
          $ref: '#/components/schemas/dhcpd_config_type6'
        vendor_encapsulated:
          $ref: '#/components/schemas/dhcpd_config_vendor_options'
      type: object
    radius_acct_server:
      additionalProperties: false
      properties:
        host:
          description: IP/ hostname of RADIUS server
          examples:
          - 1.2.3.4
          type: string
        keywrap_enabled:
          type: boolean
        keywrap_format:
          $ref: '#/components/schemas/radius_keywrap_format'
        keywrap_kek:
          examples:
          - '1122334455'
          type: string
        keywrap_mack:
          examples:
          - '1122334455'
          type: string
        port:
          $ref: '#/components/schemas/radius_acct_port'
        secret:
          description: Secret of RADIUS server
          examples:
          - testing123
          format: password
          type: string
      required:
      - host
      - secret
      type: object
    ntp_servers:
      description: List of NTP servers specific to this device. By default, those in Site Settings will be used
      items:
        type: string
      type: array
    junos_port_config:
      additionalProperties: false
      description: Switch port config
      properties:
        ae_disable_lacp:
          description: To disable LACP support for the AE interface
          type: boolean
        ae_idx:
          description: Users could force to use the designated AE name
          type: integer
        ae_lacp_force_up:
          default: false
          description: 'If `aggregated`==`true`, sets the state of the interface as UP when the peer has limited LACP capability. Use case: When a device connected to this AE port is ZTPing for the first time, it will not have LACP configured on the other end. **Note:** Turning this on will enable force-up on one of the interfaces in the bundle only'
          type: boolean
        ae_lacp_slow:
          description: To use slow timeout
          type: boolean
        aggregated:
          default: false
          type: boolean
        critical:
          default: false
          description: To generate port up/down alarm
          type: boolean
        description:
          type: string
        disable_autoneg:
          default: false
          description: If `speed` and `duplex` are specified, whether to disable autonegotiation
          type: boolean
        duplex:
          $ref: '#/components/schemas/junos_port_config_duplex'
        dynamic_usage:
          description: Enable dynamic usage for this port. Set to `dynamic` to enable.
          type:
          - string
          - 'null'
        esilag:
          type: boolean
        mtu:
          default: 1514
          description: Media maximum transmission unit (MTU) is the largest data unit that can be forwarded without fragmentation
          type: integer
        networks:
          description: List of network names. Required if `usage`==`inet`
          items:
            type: string
          type: array
        no_local_overwrite:
          default: true
          description: Prevent helpdesk to override the port config
          type: boolean
        poe_disabled:
          default: false
          type: boolean
        port_network:
          description: Required if `usage`==`vlan_tunnel`. Q-in-Q tunneling using All-in-one bundling. This also enables standard L2PT for interfaces that are not encapsulation tunnel interfaces and uses MAC rewrite operation. [View more information](https://www.juniper.net/documentation/us/en/software/junos/multicast-l2/topics/topic-map/q-in-q.html#id-understanding-qinq-tunneling-and-vlan-translation)
          type: string
        speed:
          $ref: '#/components/schemas/junos_port_config_speed'
        usage:
          description: Port usage name. For Q-in-Q, use `vlan_tunnel`. If EVPN is used, use `evpn_uplink`or `evpn_downlink`
          type: string
      required:
      - usage
      type: object
    vrf_extra_route6:
      additionalProperties: false
      properties:
        via:
          description: Next-hop address
          format: ipv6
          type: string
      type: object
    gateway_ip_configs:
      additionalProperties:
        $ref: '#/components/schemas/gateway_ip_config_property'
      description: Property key is the network name
      type: object
    remote_syslog_server_protocol:
      default: udp
      description: 'enum: `tcp`, `udp`'
      enum:
      - tcp
      - udp
      type: string
    ospf_area:
      additionalProperties: false
      description: Property key is the OSPF Area (Area should be a number (0-255) / IP address)
      properties:
        include_loopback:
          default: false
          type: boolean
        networks:
          additionalProperties:
            $ref: '#/components/schemas/ospf_areas_network'
          examples:
          - corp:
              auth_keys:
                '1': auth-key-1
              auth_type: md5
              bfd_minimum_interval: 500
              dead_interval: 40
              hello_interval: 10
              interface_type: nbma
              metric: 10000
            guest:
              passive: true
          type: object
        type:
          $ref: '#/components/schemas/ospf_area_type'
      type: object
    tunnel_config:
      additionalProperties: false
      properties:
        auto_provision:
          $ref: '#/components/schemas/tunnel_config_auto_provision'
        ike_lifetime:
          description: Only if `provider`==`custom-ipsec`
          type: integer
        ike_mode:
          $ref: '#/components/schemas/tunnel_config_ike_mode'
        ike_proposals:
          $ref: '#/components/schemas/tunnel_config_ike_proposals'
        ipsec_lifetime:
          description: If `provider`==`custom-ipsec`
          type: integer
        ipsec_proposals:
          $ref: '#/components/schemas/tunnel_config_ipsec_proposals'
        local_id:
          description: Required if `provider`==`zscaler-ipsec`, `provider`==`jse-ipsec` or `provider`==`custom-ipsec`
          type: string
        local_subnets:
          $ref: '#/components/schemas/tunnel_config_local_subnets'
        mode:
          $ref: '#/components/schemas/tunnel_config_tunnel_mode'
        networks:
          $ref: '#/components/schemas/tunnel_config_networks'
        primary:
          $ref: '#/components/schemas/tunnel_config_node'
        probe:
          $ref: '#/components/schemas/tunnel_config_probe'
        protocol:
          $ref: '#/components/schemas/tunnel_config_protocol'
        provider:
          $ref: '#/components/schemas/tunnel_config_provider'
        psk:
          description: Required if `provider`==`zscaler-ipsec`, `provider`==`jse-ipsec` or `provider`==`custom-ipsec`
          type: string
        remote_subnets:
          $ref: '#/components/schemas/tunnel_config_remote_subnets'
        secondary:
          $ref: '#/components/schemas/tunnel_config_node'
        version:
          $ref: '#/components/schemas/tunnel_config_version'
      type: object
    network_multicast_groups:
      additionalProperties:
        $ref: '#/components/schemas/network_multicast_group'
      description: Group address to RP (rendezvous point) mapping. Property Key is the CIDR (example "225.1.0.3/32")
      type: object
    strings:
      items:
        type: string
      type: array
      uniqueItems: true
    network_source_nat:
      additionalProperties: false
      description: If `routed`==`false` (usually at Spoke), but some hosts needs to be reachable from Hub
      properties:
        external_ip:
          examples:
          - 172.16.0.8/30
          type: string
      type: object
    sw_routing_policy_term_action:
      additionalProperties: false
      description: When used as import policy
      properties:
        accept:
          type: boolean
        community:
          $ref: '#/components/schemas/routing_policy_term_action_community'
        local_preference:
          $ref: '#/components/schemas/routing_policy_local_preference'
        prepend_as_path:
          $ref: '#/components/schemas/routing_policy_term_action_prepend_as_path'
      type: object
    tunnel_config_probe_type:
      default: icmp
      description: 'enum: `http`, `icmp`'
      enum:
      - http
      - icmp
      type: string
    radsec:
      additionalProperties: false
      description: RadSec settings
      properties

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