Juniper Networks Blueprints API

Blueprint lifecycle management for data center network intent, including staging, commit, and deployment.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

juniper-networks-blueprints-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Juniper Networks Juniper Apstra Intent-Based Networking Alarms Blueprints 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: Blueprints
  description: Blueprint lifecycle management for data center network intent, including staging, commit, and deployment.
paths:
  /blueprints:
    get:
      operationId: listBlueprints
      summary: Juniper Networks List blueprints
      description: Returns all blueprints. Blueprints are instantiations of templates representing a specific data center network. They contain the full network graph including nodes, links, and configuration state.
      tags:
      - Blueprints
      responses:
        '200':
          description: Blueprints returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/BlueprintSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createBlueprint
      summary: Juniper Networks Create blueprint
      description: Creates a new blueprint from a template. The blueprint will contain the initial network graph based on the template design.
      tags:
      - Blueprints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - label
              - design
              properties:
                label:
                  type: string
                  description: Blueprint display name.
                design:
                  type: string
                  enum:
                  - two_stage_l3clos
                  description: Blueprint design type.
                init_type:
                  type: string
                  enum:
                  - template_reference
                  description: Initialization method.
                template_id:
                  type: string
                  format: uuid
                  description: Template ID to instantiate.
      responses:
        '201':
          description: Blueprint created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintSummary'
        '400':
          $ref: '#/components/responses/BadRequest'
  /blueprints/{blueprint_id}:
    get:
      operationId: getBlueprint
      summary: Juniper Networks Get blueprint
      description: Returns details for a specific blueprint.
      tags:
      - Blueprints
      parameters:
      - $ref: '#/components/parameters/BlueprintId'
      responses:
        '200':
          description: Blueprint returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Blueprint'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteBlueprint
      summary: Juniper Networks Delete blueprint
      description: Deletes a blueprint and its associated network graph.
      tags:
      - Blueprints
      parameters:
      - $ref: '#/components/parameters/BlueprintId'
      responses:
        '204':
          description: Blueprint deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /blueprints/{blueprint_id}/deploy:
    put:
      operationId: deployBlueprint
      summary: Juniper Networks Deploy blueprint
      description: Commits and deploys staged changes in the blueprint to the physical network devices. Generates device-specific configurations from the intent model and pushes them to managed switches.
      tags:
      - Blueprints
      parameters:
      - $ref: '#/components/parameters/BlueprintId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: integer
                  description: Blueprint version to deploy.
                description:
                  type: string
                  description: Deployment description.
      responses:
        '200':
          description: Deployment initiated.
        '400':
          $ref: '#/components/responses/BadRequest'
        '409':
          description: Blueprint has no staged changes or version conflict.
  /blueprints/{blueprint_id}/security-zones:
    get:
      operationId: listSecurityZones
      summary: Juniper Networks List security zones (VRFs)
      description: Returns all security zones (routing zones / VRFs) configured in the blueprint. Security zones provide network segmentation through VRF instances on leaf switches.
      tags:
      - Blueprints
      parameters:
      - $ref: '#/components/parameters/BlueprintId'
      responses:
        '200':
          description: Security zones returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/SecurityZone'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /blueprints/{blueprint_id}/virtual-networks:
    get:
      operationId: listVirtualNetworks
      summary: Juniper Networks List virtual networks
      description: Returns all virtual networks in the blueprint. Virtual networks represent VLANs/VXLANs provisioned across the fabric for workload connectivity.
      tags:
      - Blueprints
      parameters:
      - $ref: '#/components/parameters/BlueprintId'
      responses:
        '200':
          description: Virtual networks returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/VirtualNetwork'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
  schemas:
    Error:
      type: object
      properties:
        errors:
          type: string
          description: Error message.
    SecurityZone:
      type: object
      properties:
        id:
          type: string
          format: uuid
        label:
          type: string
          description: Security zone name.
        vrf_name:
          type: string
          description: VRF name on devices.
        routing_policy_id:
          type: string
          format: uuid
          description: Associated routing policy.
        vni_id:
          type: integer
          description: L3 VNI for the security zone.
    VirtualNetwork:
      type: object
      properties:
        id:
          type: string
          format: uuid
        label:
          type: string
          description: Virtual network name.
        vn_type:
          type: string
          enum:
          - vxlan
          description: Virtual network type.
        vn_id:
          type: string
          description: VXLAN VNI.
        security_zone_id:
          type: string
          format: uuid
          description: Parent security zone.
        bound_to:
          type: array
          items:
            type: object
            properties:
              system_id:
                type: string
                format: uuid
              vlan_id:
                type: integer
          description: Systems and VLAN IDs where the VN is bound.
        ipv4_subnet:
          type: string
          description: IPv4 gateway subnet in CIDR notation.
        virtual_gateway_ipv4:
          type: string
          description: Virtual gateway IPv4 address.
    BlueprintSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Blueprint unique identifier.
        label:
          type: string
          description: Blueprint label.
        design:
          type: string
          description: Design type.
        status:
          type: string
          description: Blueprint deployment status.
        build_errors_count:
          type: integer
          description: Number of build errors.
        build_warnings_count:
          type: integer
          description: Number of build warnings.
        version:
          type: integer
          description: Current blueprint version.
    Blueprint:
      type: object
      properties:
        id:
          type: string
          format: uuid
        label:
          type: string
        design:
          type: string
        version:
          type: integer
        nodes:
          type: object
          additionalProperties:
            type: object
          description: Blueprint graph nodes keyed by ID.
        relationships:
          type: object
          additionalProperties:
            type: object
          description: Blueprint graph relationships keyed by ID.
  parameters:
    BlueprintId:
      name: blueprint_id
      in: path
      required: true
      description: Blueprint unique identifier.
      schema:
        type: string
        format: uuid
  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.