Juniper Networks Resources API

Resource pool management for ASN, IP, and VNI allocation.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

juniper-networks-resources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Juniper Networks Juniper Apstra Intent-Based Networking Alarms Resources API
  description: RESTful API for Juniper Apstra, an intent-based networking platform for automating data center network design, deployment, and operations. Apstra abstracts network infrastructure into design blueprints with logical models, rack types, templates, and connectivity. The platform continuously validates that the network state matches the intended configuration and raises anomalies when deviations occur. The API provides full access to design resources, blueprints, device management, telemetry, and IBA (Intent-Based Analytics) probes. Authentication uses token-based sessions obtained via the login endpoint.
  version: '4.2'
  contact:
    name: Juniper Networks Support
    url: https://www.juniper.net/documentation/product/us/en/juniper-apstra/
  license:
    name: Proprietary
    url: https://www.juniper.net/us/en/legal-notices.html
servers:
- url: https://{apstra_server}/api
  description: Apstra server API endpoint.
  variables:
    apstra_server:
      description: Hostname or IP address of the Apstra server.
      default: apstra.example.com
security:
- authToken: []
tags:
- name: Resources
  description: Resource pool management for ASN, IP, and VNI allocation.
paths:
  /resources/asn-pools:
    get:
      operationId: listAsnPools
      summary: Juniper Networks List ASN pools
      description: Returns all ASN (Autonomous System Number) pools. ASN pools are allocated to spine and leaf switches for BGP peering in the data center fabric.
      tags:
      - Resources
      responses:
        '200':
          description: ASN pools returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/AsnPool'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createAsnPool
      summary: Juniper Networks Create ASN pool
      description: Creates a new ASN pool with defined ranges.
      tags:
      - Resources
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsnPool'
      responses:
        '201':
          description: ASN pool created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsnPool'
        '400':
          $ref: '#/components/responses/BadRequest'
  /resources/ip-pools:
    get:
      operationId: listIpPools
      summary: Juniper Networks List IP pools
      description: Returns all IP address pools. IP pools are used to allocate loopback addresses, fabric link subnets, and virtual network gateways across the data center fabric.
      tags:
      - Resources
      responses:
        '200':
          description: IP pools returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/IpPool'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /resources/vni-pools:
    get:
      operationId: listVniPools
      summary: Juniper Networks List VNI pools
      description: Returns all VNI (VXLAN Network Identifier) pools. VNI pools provide unique identifiers for VXLAN tunnels used in the EVPN-VXLAN fabric overlay.
      tags:
      - Resources
      responses:
        '200':
          description: VNI pools returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VniPool'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    VniPool:
      type: object
      properties:
        id:
          type: string
          format: uuid
        display_name:
          type: string
        ranges:
          type: array
          items:
            type: object
            properties:
              first:
                type: integer
              last:
                type: integer
    Error:
      type: object
      properties:
        errors:
          type: string
          description: Error message.
    IpPool:
      type: object
      properties:
        id:
          type: string
          format: uuid
        display_name:
          type: string
        subnets:
          type: array
          items:
            type: object
            properties:
              network:
                type: string
                description: Subnet in CIDR notation.
              status:
                type: string
                description: Subnet usage status.
    AsnPool:
      type: object
      properties:
        id:
          type: string
          format: uuid
        display_name:
          type: string
        ranges:
          type: array
          items:
            type: object
            properties:
              first:
                type: integer
                description: First ASN in the range.
              last:
                type: integer
                description: Last ASN in the range.
        status:
          type: string
          description: Pool usage status.
  responses:
    BadRequest:
      description: Invalid request parameters or malformed payload.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or token expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    authToken:
      type: apiKey
      in: header
      name: AuthToken
      description: Authentication token obtained from POST /api/aaa/login. Include in the AuthToken header for all authenticated API requests.