openapi: 3.1.0 info: title: Juniper Networks Juniper Apstra Allowlists and Blocklists Projects API description: Juniper Apstra is an intent-based networking platform for data center automation. The Apstra API provides RESTful access to manage blueprints, design elements, devices, connectivity templates, virtual networks, and intent-based analytics. It supports multivendor environments and enables closed-loop automation from design through deployment and operations. version: 4.2.0 contact: name: Juniper Support url: https://www.juniper.net/us/en/products/network-automation/apstra.html email: support@juniper.net license: name: Proprietary url: https://www.juniper.net/us/en/legal-notices.html termsOfService: https://www.juniper.net/us/en/legal-notices.html servers: - url: https://{apstra_server}/api description: Apstra Server variables: apstra_server: default: apstra.example.com description: Hostname or IP of the Apstra server security: - authToken: [] tags: - name: Projects description: Project (tenant) management paths: /projects: get: operationId: listProjects summary: Juniper Networks List projects description: Returns all projects (tenants) in the system. tags: - Projects parameters: - $ref: '#/components/parameters/ParentId' - $ref: '#/components/parameters/DetailParam' responses: '200': description: List of projects content: application/json: schema: type: object properties: projects: type: array items: $ref: '#/components/schemas/ResourceRef' post: operationId: createProject summary: Juniper Networks Create a project description: Creates a new project (tenant). tags: - Projects requestBody: required: true content: application/json: schema: type: object properties: project: $ref: '#/components/schemas/Project' responses: '200': description: Project created content: application/json: schema: type: object properties: project: $ref: '#/components/schemas/Project' /project/{project_id}: get: operationId: getProject summary: Juniper Networks Get project details description: Returns details of a specific project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectId' responses: '200': description: Project details content: application/json: schema: type: object properties: project: $ref: '#/components/schemas/Project' put: operationId: updateProject summary: Juniper Networks Update project description: Updates an existing project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectId' requestBody: required: true content: application/json: schema: type: object properties: project: $ref: '#/components/schemas/Project' responses: '200': description: Project updated delete: operationId: deleteProject summary: Juniper Networks Delete project description: Deletes a project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectId' responses: '200': description: Project deleted components: parameters: DetailParam: name: detail in: query description: Return full object details instead of references schema: type: boolean default: false ParentId: name: parent_id in: query description: Filter by parent resource UUID schema: type: string format: uuid ProjectId: name: project_id in: path required: true description: Project UUID schema: type: string format: uuid schemas: Project: type: object properties: uuid: type: string format: uuid fq_name: type: array items: type: string display_name: type: string id_perms: $ref: '#/components/schemas/IdPerms' quota: type: object properties: virtual_network: type: integer subnet: type: integer security_group: type: integer floating_ip: type: integer ResourceRef: type: object properties: uuid: type: string format: uuid fq_name: type: array items: type: string href: type: string format: uri IdPerms: type: object properties: enable: type: boolean uuid: type: object properties: uuid_mslong: type: integer uuid_lslong: type: integer created: type: string format: date-time last_modified: type: string format: date-time description: type: string user_visible: type: boolean securitySchemes: authToken: type: apiKey in: header name: AuthToken description: Authentication token obtained from the /aaa/login endpoint. Include as AuthToken header in all requests. externalDocs: description: Apstra API Documentation url: https://www.juniper.net/documentation/us/en/software/apstra/