Juniper Mist AI Sites Device Profiles API

The API Endpoints for the Device Profiles at the site level can be used to get the site derived networks, meaning the org level configuration with the site variables resolved..

Operations 1

GET /api/v1/sites/{site_id}/deviceprofiles/derived listSiteDeviceProfilesDerived #

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-sites-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-sites-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 Sites 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: The API Endpoints for the Device Profiles at the site level can be used to get the site derived networks, meaning the org level configuration with the site variables resolved..
  name: Sites Device Profiles
paths:
  /api/v1/sites/{site_id}/deviceprofiles/derived:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get the list of derived Device Profiles for a Site
      operationId: listSiteDeviceProfilesDerived
      parameters:
      - description: Whether resolve the site variables
        in: query
        name: resolve
        schema:
          default: false
          type: boolean
      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: listSiteDeviceProfilesDerived
      tags:
      - Sites 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:
        coa_enabled:
          default: false
          type: boolean
        enabled:
          type: boolean
        idle_timeout:
          $ref: '#/components/schemas/radsec_idle_timeout'
        mxcluster_ids:
          $ref: '#/components/schemas/radsec_mxcluster_ids'
        proxy_hosts:
          $ref: '#/components/schemas/radsec_proxy_hosts'
        server_name:
          description: Name of the server to verify (against the cacerts in Org Setting). Only if not Mist Edge.
          examples:
          - radsec.abc.com
          type: string
        servers:
          $ref: '#/components/schemas/radsec_servers'
        use_mxedge:
          description: use mxedge(s) as RadSec Proxy
          type: boolean
        use_site_mxedge:
          default: false
          description: To use Site mxedges when this WLAN does not use mxtunnel
          type: boolean
      type: object
    const_device_type_switch:
      description: 'Device Type. enum: `switch`'
      enum:
      - switch
      readOnly: true
      type: string
    vrrp_config_groups:
      additionalProperties:
        $ref: '#/components/schemas/vrrp_config_group'
      description: Property key is the VRRP name
      type: object
    routing_policy_term_matching_prefix:
      description: zero or more criteria/filter can be specified to match the term, all criteria have to be met
      items:
        examples:
        - 192.168.0.0/16-30
        type: string
      type: array
    gateway_ip_config_property:
      additionalProperties: false
      properties:
        ip:
          format: ipv4
          type: string
        ip6:
          format: ipv6
          type: string
        netmask:
          examples:
          - /24
          type: string
        netmask6:
          examples:
          - 2001:db8:abcd:12::1
          type: string
        secondary_ips:
          $ref: '#/components/schemas/gateway_ip_config_property_second_ips'
        type:
          $ref: '#/components/schemas/ip_type'
        type6:
          $ref: '#/components/schemas/ip_type6'
      type: object
    ap_mesh:
      additionalProperties: false
      description: Mesh AP settings
      properties:
        bands:
          $ref: '#/components/schemas/ap_mesh_bands'
        enabled:
          default: false
          description: Whether mesh is enabled on this AP
          type: boolean
        group:
          description: Mesh group, base AP(s) will only allow remote AP(s) in the same mesh group to join, 1-9, optional
          examples:
          - 1
          maximum: 9
          minimum: 1
          type:
          - integer
          - 'null'
        role:
          $ref: '#/components/schemas/ap_mesh_role'
        use_wpa3_on_5:
          default: false
          description: Whether to use WPA3 on the 5 GHz band for mesh links
          type: boolean
      type: object
    remote_syslog_users:
      items:
        $ref: '#/components/schemas/remote_syslog_user'
      type: array
    idp_profile_matching:
      additionalProperties: false
      properties:
        attack_name:
          $ref: '#/components/schemas/idp_profile_matching_attack_name'
        dst_subnet:
          $ref: '#/components/schemas/idp_profile_matching_dst_subnet'
        severity:
          $ref: '#/components/schemas/idp_profile_matching_severity'
      type: object
    switch_radius_config:
      additionalProperties: false
      description: Junos Radius config
      properties:
        acct_immediate_update:
          type: boolean
        acct_interim_interval:
          default: 0
          description: How frequently should interim accounting be reported, 60-65535. default is 0 (use one specified in Access-Accept request from RADIUS Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled
          maximum: 65535
          minimum: 0
          type: integer
        acct_servers:
          $ref: '#/components/schemas/radius_acct_servers'
        auth_server_selection:
          $ref: '#/components/schemas/switch_radius_config_auth_server_selection'
        auth_servers:
          $ref: '#/components/schemas/radius_auth_servers'
        auth_servers_retries:
          default: 3
          description: Radius auth session retries
          type: integer
        auth_servers_timeout:
          default: 5
          description: Radius auth session timeout
          type: integer
        coa_enabled:
          default: false
          type: boolean
        coa_port:
          $ref: '#/components/schemas/radius_coa_port'
        fast_dot1x_timers:
          default: false
          type: boolean
        network:
          description: Use `network`or `source_ip`. Which network the RADIUS server resides, if there's static IP for this network, we'd use it as source-ip
          type: string
        source_ip:
          description: Use `network`or `source_ip`
          type: string
      type: object
    dhcpd_config_vendor_option:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/dhcpd_config_vendor_option_type'
        value:
          type: string
      type: object
    ospf_area_type:
      default: default
      description: 'OSPF type. enum: `default`, `nssa`, `stub`'
      enum:
      - default
      - nssa
      - stub
      examples:
      - default
      type: string
    service_policy_skyatp_iot_device_policy:
      additionalProperties: false
      properties:
        enabled:
          type: boolean
      type: object
    routing_policy_term_action_prepend_as_path:
      description: When used as export policy, optional. By default, the local AS will be prepended, to change it. Can be a Variable (e.g. `{{as_path}}`)
      items:
        examples:
        - 65000 400
        type: string
      type: array
    ip_type6:
      default: disabled
      description: 'enum: `autoconf`, `dhcp`, `disabled`, `static`'
      enum:
      - autoconf
      - dhcp
      - disabled
      - static
      examples:
      - static
      type: string
    vrf_extra_routes:
      additionalProperties:
        $ref: '#/components/schemas/vrf_extra_route'
      description: Property key is the destination CIDR (e.g. "10.0.0.0/8")
      examples:
      - 0.0.0.0/0:
          via: 192.168.1.10
      type: object
    gateway_port_config:
      additionalProperties: false
      description: Gateway port config
      properties:
        ae_disable_lacp:
          default: false
          description: If `aggregated`==`true`. To disable LCP support for the AE interface
          type: boolean
        ae_idx:
          description: If `aggregated`==`true`. Users could force to use the designated AE name (must be an integer between 0 and 127)
          type:
          - string
          - 'null'
        ae_lacp_force_up:
          default: false
          description: 'For SRX only, 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
        aggregated:
          default: false
          type: boolean
        critical:
          default: false
          description: To generate port up/down alarm, set it to true
          type: boolean
        description:
          description: Interface Description. Can be a variable (i.e. "{{myvar}}")
          type: string
        disable_autoneg:
          default: false
          type: boolean
        disabled:
          default: false
          description: Port admin up (true) / down (false)
          type: boolean
        dsl_type:
          $ref: '#/components/schemas/gateway_port_dsl_type'
        dsl_vci:
          default: 35
          description: If `wan_type`==`dsl`, 16 bit int
          type: integer
        dsl_vpi:
          default: 0
          description: If `wan_type`==`dsl`, 8 bit int
          type: integer
        duplex:
          $ref: '#/components/schemas/gateway_port_duplex'
        ip_config:
          $ref: '#/components/schemas/gateway_port_config_ip_config'
        lte_apn:
          description: If `wan_type`==`lte`
          type: string
        lte_auth:
          $ref: '#/components/schemas/gateway_port_lte_auth'
        lte_backup:
          type: boolean
        lte_password:
          description: If `wan_type`==`lte`
          type: string
        lte_username:
          description: If `wan_type`==`lte`
          type: string
        mtu:
          type: integer
        name:
          description: Name that we'll use to derive config
          type: string
        networks:
          $ref: '#/components/schemas/gateway_port_networks'
        outer_vlan_id:
          description: For Q-in-Q
          type: integer
        poe_disabled:
          default: false
          type: boolean
        poe_keep_state_when_reboot:
          default: false
          description: Whether Perpetual PoE capabilities are enabled for a port
          type: boolean
        port_network:
          description: Only for SRX and if `usage`==`lan`, the name of the Network to be used as the Untagged VLAN
          type: string
        preserve_dscp:
          default: true
          description: Whether to preserve dscp when sending traffic over VPN (SSR-only)
          type: boolean
        redundant:
          description: If HA mode
          type: boolean
        redundant_group:
          description: If HA mode, SRX Only - support redundancy-group. 1-128 for physical SRX, 1-64 for virtual SRX
          maximum: 128
          minimum: 1
          type: integer
        reth_idx:
          $ref: '#/components/schemas/gateway_port_config_reth_idx'
        reth_node:
          description: If HA mode
          type: string
        reth_nodes:
          $ref: '#/components/schemas/gateway_port_reth_nodes'
        speed:
          default: auto
          examples:
          - 1g
          type: string
        ssr_no_virtual_mac:
          default: false
          description: When SSR is running as VM, this is required on certain hosting platforms
          type: boolean
        svr_port_range:
          default: none
          description: For SSR only
          examples:
          - 60000-60005
          type: string
        traffic_shaping:
          $ref: '#/components/schemas/gateway_traffic_shaping'
        usage:
          $ref: '#/components/schemas/gateway_port_usage'
        vlan_id:
          $ref: '#/components/schemas/gateway_port_vlan_id_with_variable'
        vpn_paths:
          $ref: '#/components/schemas/gateway_port_vpn_paths'
        wan_arp_policer:
          $ref: '#/components/schemas/gateway_port_wan_arp_policer'
        wan_ext_ip:
          description: Only if `usage`==`wan`, optional. If spoke should reach this port by a different IP
          examples:
          - 64.2.4.3
          type: string
        wan_ext_ip6:
          description: Only if `usage`==`wan`, optional. If spoke should reach this port by a different IPv6
          examples:
          - 2601:1700:43c0:dc0::10
          type: string
        wan_extra_routes:
          additionalProperties:
            $ref: '#/components/schemas/wan_extra_routes'
          description: Only if `usage`==`wan`. Property Key is the destination CIDR (e.g. "100.100.100.0/24")
          type: object
        wan_extra_routes6:
          additionalProperties:
            $ref: '#/components/schemas/wan_extra_routes6'
          description: Only if `usage`==`wan`. Property Key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
          type: object
        wan_networks:
          $ref: '#/components/schemas/gateway_port_config_wan_networks'
        wan_probe_override:
          $ref: '#/components/schemas/gateway_wan_probe_override'
        wan_source_nat:
          $ref: '#/components/schemas/gateway_port_wan_source_nat'
        wan_speedtest_mode:
          $ref: '#/components/schemas/gateway_port_config_wan_speedtest_mode'
        wan_type:
          $ref: '#/components/schemas/gateway_port_wan_type'
      required:
      - usage
      type: object
    network_tenants:
      additionalProperties:
        $ref: '#/components/schemas/network_tenant'
      description: Property key must be the user/tenant name (i.e. "printer-1") or a Variable (i.e. "{{myvar}}")
      type: object
    ospf_area_network_interface_type:
      default: broadcast
      description: 'interface type (nbma = non-broadcast multi-access). enum: `broadcast`, `nbma`, `p2mp`, `p2p`'
      enum:
      - broadcast
      - nbma
      - p2mp
      - p2p
      type: string
    snmp_config_client_list:
      additionalProperties: false
      properties:
        client_list_name:
          examples:
          - clist-1
          type: string
        clients:
          $ref: '#/components/schemas/snmp_config_client_list_clients'
      type: object
    ibeacon_minor:
      description: Minor number for iBeacon
      examples:
      - 1234
      maximum: 65535
      minimum: 1
      type:
      - integer
      - 'null'
    switch_mgmt_mxedge_proxy_port:
      anyOf:
      - default: 2222
        maximum: 65535
        minimum: 1
        type: integer
      - type: string
      description: Mist Edge port used to proxy the switch management traffic to the Mist Cloud. Value in range 1-65535
    gateway_path_preferences:
      additionalProperties: false
      properties:
        paths:
          $ref: '#/components/schemas/gateway_path_preferences_paths'
        strategy:
          $ref: '#/components/schemas/gateway_path_strategy'
      type: object
    aggregate_route:
      additionalProperties: false
      properties:
        discard:
          default: false
          type: boolean
        metric:
          maximum: 4294967295
          minimum: 0
          type:
          - integer
          - 'null'
        preference:
          maximum: 4294967295
          minimum: 0
          type:
          - integer
          - 'null'
      type: object
    gateway_extra_routes6:
      additionalProperties:
        $ref: '#/components/schemas/gateway_extra_route6'
      description: Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64"), the destination Network name or a variable (e.g. "{{myvar}}")
      examples:
      - 2a02:1234:420a:10c9::/64:
          via: 2a02:1234:200a::100
      type: object
    dhcp_snooping:
      additionalProperties: false
      properties:
        all_networks:
          type: boolean
        enable_arp_spoof_check:
          description: Enable for dynamic ARP inspection check
          type: boolean
        enable_ip_source_guard:
          description: Enable for check for forging source IP address
          type: boolean
        enabled:

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