openapi: 3.1.0 info: title: Juniper Networks Juniper Apstra Intent-Based Networking Alarms WLANs 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: WLANs description: Wireless LAN configuration including SSIDs, security, and VLAN assignment. paths: /sites/{site_id}/wlans: get: operationId: listSiteWlans summary: Juniper Networks List site WLANs description: Returns all WLAN configurations for a site. Each WLAN defines an SSID with associated security, VLAN, and radio settings. tags: - WLANs parameters: - $ref: '#/components/parameters/SiteId' responses: '200': description: WLANs returned. content: application/json: schema: type: array items: $ref: '#/components/schemas/Wlan' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createSiteWlan summary: Juniper Networks Create WLAN description: Creates a new WLAN (SSID) at a site with specified security, VLAN, and radio configuration. tags: - WLANs parameters: - $ref: '#/components/parameters/SiteId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Wlan' responses: '200': description: WLAN created. content: application/json: schema: $ref: '#/components/schemas/Wlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: parameters: SiteId: name: site_id in: path required: true description: Site unique identifier. schema: type: string format: uuid responses: BadRequest: description: Invalid request parameters. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication required or token invalid. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object properties: detail: type: string description: Human-readable error description. Wlan: type: object properties: id: type: string format: uuid description: WLAN unique identifier. ssid: type: string description: SSID name broadcast by access points. enabled: type: boolean description: Whether the WLAN is enabled. auth: type: object properties: type: type: string enum: - open - psk - eap - wep description: Authentication type. psk: type: string description: Pre-shared key for PSK authentication. description: Authentication configuration. band: type: string enum: - '2.4' - '5' - '6' - both description: Radio band for the WLAN. vlan_enabled: type: boolean description: Whether VLAN tagging is enabled. vlan_id: type: integer description: VLAN ID for client traffic. hide_ssid: type: boolean description: Whether to hide the SSID from broadcast. band_steer: type: boolean description: Whether band steering is enabled. client_limit_down: type: integer description: Per-client downstream rate limit in kbps. client_limit_up: type: integer description: Per-client upstream rate limit in kbps. 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.