Poll many nodes now (ADR-124 Inc.12) — the batch form of `POST /nodes/{node_id}/poll`.
const url = 'https://example.com/api/v1/nodes/poll';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"node_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/nodes/poll \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "node_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'Confirming a change across a set of devices is the case the single-node form serves badly: it is the action an operator reaches for immediately after every other bulk edit on this screen.
⚠️ The publishes are one per node and there is no transaction to roll back, so a bus error partway leaves the earlier nodes polled. That is accepted rather than worked around: a poll writes no configuration and is idempotent, so the failure mode is “some nodes were polled twice”, not a half-applied change — unlike every other bulk route on this screen, which is why they are single statements and this one is not.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”The nodes to poll now.
object
Examplegenerated
{ "node_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ]}Responses
Section titled “Responses”How many of the named nodes were dispatched
What a bulk manual poll dispatched.
object
Nodes whose jobs were published. Lower than requested is normal: an id can name a
node that has since been deleted, or one outside the caller’s scope. The two are not
distinguished.
Poll jobs published in total — several per node, since a node’s configured check set is dispatched whole.
Distinct ids the request named, after de-duplication.
Examplegenerated
{ "dispatched": 1, "jobs": 1, "requested": 1}More ids than one request may carry
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 ManageConfig
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" }}This deployment has no write side (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" }}