Juniper Networks · OpenAPI Overlay 1.0.0

API Evangelist enhancements — Juniper Mist API

Overlay of OBSERVED runtime behaviour that the published Mist API OpenAPI (2607.1.1) leaves undeclared. Every action below adds something seen on a live response or read from the provider's own docs; nothing is invented. The original spec in openapi/juniper-mist-api-openapi.yml is never mutated.

6 actions 6 updates update extends ./../openapi/juniper-mist-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Juniper Networks's API. It is a proposal applied on top of the contract, not a document Juniper Networks publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-sourcex-apievangelist-artifactsTooManyRequestsObservedX-Page-LimitX-Page-PageX-Page-Totalx-token-idle-expiry-daysx-rate-limit

Targets 6

$.info
$.components.responses
$.components.headers
$.components.securitySchemes.apiToken
$.paths['/api/v1/orgs/{org_id}/webhooks'].post
$.paths['/api/v1/sites/{site_id}/devices/upgrade'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — Juniper Mist API
  version: 1.0.0
  description: >-
    Overlay of OBSERVED runtime behaviour that the published Mist API OpenAPI (2607.1.1)
    leaves undeclared. Every action below adds something seen on a live response or read
    from the provider's own docs; nothing is invented. The original spec in
    openapi/juniper-mist-api-openapi.yml is never mutated.
x-generated: '2026-09-18'
x-method: generated
x-source: >-
  openapi/juniper-mist-api-openapi.yml + live probe of api.mist.com on 2026-09-18 +
  rate-limits/juniper-rate-limits.yml + conventions/juniper-conventions.yml
extends: ./../openapi/juniper-mist-api-openapi.yml
actions:
  - target: $.info
    description: Record the provider-hosted source of this spec and the derived artifacts that read it.
    update:
      x-apievangelist-source: https://www.juniper.net/documentation/us/en/software/mist/api/static/exports/mist-api-openapi31yaml.yaml
      x-apievangelist-artifacts:
        conventions: conventions/juniper-conventions.yml
        errors: errors/juniper-problem-types.yml
        rate-limits: rate-limits/juniper-rate-limits.yml
        webhooks: asyncapi/juniper-mist-webhooks.yml
        data-model: data-model/juniper-data-model.yml
  - target: $.components.responses
    description: >-
      Declare the Retry-After header observed on a live 429 (value 73) which the published
      spec omits — its 429 responses carry an empty headers object.
    update:
      TooManyRequestsObserved:
        description: >-
          429 as observed on api.mist.com — the API token reached the 5,000 calls/hour
          threshold. Retry-After is returned in practice but not declared upstream.
        headers:
          Retry-After:
            description: Seconds to wait before retrying. Observed on 2026-09-18; undocumented by the provider.
            schema:
              type: integer
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/response_http429'
  - target: $.components.headers
    description: >-
      Pagination headers the edge exposes via Access-Control-Expose-Headers but the
      contract never mentions.
    update:
      X-Page-Limit:
        description: Page size applied to this response (observed in access-control-expose-headers, undocumented).
        schema:
          type: integer
      X-Page-Page:
        description: Current page number (observed, undocumented).
        schema:
          type: integer
      X-Page-Total:
        description: Total matching items (observed, undocumented).
        schema:
          type: integer
  - target: $.components.securitySchemes.apiToken
    description: Surface the 90-day idle expiry as a machine-readable extension so agents can plan for it.
    update:
      x-token-idle-expiry-days: 90
      x-rate-limit:
        limit: 5000
        window: 1h
        scope: per-api-token
        reset: hourly-boundary
  - target: $.paths['/api/v1/orgs/{org_id}/webhooks'].post
    description: Point the webhook-creating operation at the derived event catalog and signing rules.
    update:
      x-apievangelist-event-catalog: asyncapi/juniper-mist-webhooks.yml
      x-webhook-signing:
        header: X-Mist-Signature-v2
        algorithm: HMAC_SHA256
        secret_field: secret
  - target: $.paths['/api/v1/sites/{site_id}/devices/upgrade'].post
    description: Mark the reversal path so an agent knows the action can be cancelled (window undocumented).
    update:
      x-reversal:
        operationId: cancelSiteDeviceUpgrade
        window: null
        grade: documented