Access points reported by the wireless controllers Yagra monitors.
const url = 'https://example.com/api/v1/wireless/aps';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/wireless/aps \ --header 'Authorization: Bearer <token>'Built from each controller’s AP table on every poll, so an AP is listed whether or not it has
been imported as a node. An AP behind an HA pair appears once: state and clients are what the
controller serving it says, and reported_by shows every controller’s view. An AP that no
controller reports any more stays in the list with its last_seen ageing.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Only APs this controller node reports.
Only APs in this state: associated, backup or not_associated.
A case-insensitive substring of the name, MAC address, IP address or model (at most 64 characters). Matched literally.
Page size, 1–2048 (default 200).
Keyset cursor: next.key from the previous page. Pair with after_id.
Keyset cursor: next.ap_id from the previous page. Pair with after_key.
Responses
Section titled “Responses”One page of access points, ordered by name
One page of access points, ordered by name.
object
One access point.
object
Stable id, derived from the MAC address. The same AP keeps it when the controller serving it changes.
Wireless clients online through this AP, as the serving controller reports it.
The node of the controller serving this AP: the last one to report it in service.
When a controller first reported this AP (RFC 3339).
Management address. null when the controller reports none, which it does for an AP that is
down.
When a controller last reported this AP in service (RFC 3339). null if it never has been.
When a controller last reported this AP (RFC 3339). It stops advancing when no controller reports the AP any more; the AP is never removed.
MAC address, lower-case and colon-separated.
Model, as the controller spells it.
The AP’s name on its controller.
The AP’s node, once it has been imported as one.
What each controller that reports this AP says, the serving controller first. Two entries for an AP behind an HA pair.
One controller’s view of one access point.
object
The reporting controller’s node.
When this controller last reported the AP in service (RFC 3339).
When this controller last reported the AP (RFC 3339).
The controller’s own word for the state (normal, fault, standby).
Software version.
The vendor’s own grouping of APs (a Huawei AP group).
The controller named by controller_node_id, when one was named, the caller can see it,
and it has either reported an inventory or had its import settings saved (then
last_inventory_at is null). null otherwise.
object
The folder imported AP nodes are filed in. null ⇒ the folder this controller is in. No
folder is created for them.
How many access points the max_aps cap left out on the last import pass.
How many APs its last inventory carried.
Set when the controller reported more APs than one inventory may carry: how many it reported. The list then holds only the first ones by MAC address.
Whether access points this controller reports become nodes. On by default for a controller Yagra has just started reading; only APs that have been in service at least once are imported automatically.
When its last complete inventory arrived (RFC 3339). null if none has.
The most access points this controller imports (1–2048).
The controller’s node.
Example
{ "aps": [ { "reported_by": [ { "state": "associated" } ], "state": "associated" } ], "controller": { "flavor": "huawei" }}Unknown state, search longer than 64 characters, or only one half of the cursor
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}No valid bearer token
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks View
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Inventory storage is unavailable (skeleton mode)
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}