Raise an alarm on a component
const url = 'https://example.com/api/v1/components/example/alarms';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"dedup_key":"example","message":"example","severity":"example"}'};
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/components/example/alarms \ --header 'Content-Type: application/json' \ --data '{ "dedup_key": "example", "message": "example", "severity": "example" }'Records a condition on this component, then recomputes health in the same transaction: the component’s own verdict moves, and if it is now outage (an alarm at or above the high level), any role it occupies loses it as an occupant while the alarm is active, which can move its system and location verdicts with it; a lesser alarm degrades the component but leaves it occupying its roles. Gated by component:update; read and update scopes drive the 404 versus 403 split.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The component’s name, or a dotted address (e.g. boi.17c.415a.$comp.display-1)
The component’s name, or a dotted address (e.g. boi.17c.415a.$comp.display-1)
Request Body required
Section titled “Request Body required ”object
A URL to the JSON Schema for this object.
The condition identity; defaults to the message. Raising an already-open (component, dedup_key) returns the existing open alarm instead of a duplicate. A key (or, without one, a message) beginning rule: is refused (422): that namespace names a rule’s condition
What is wrong, for the operator reading it later
How bad it is: a severity level by name (see /severity-levels); a level at or above high puts the component itself in outage
Responses
Section titled “ Responses ”Created
object
A URL to the JSON Schema for this object.
Whether anybody has recorded seeing this alarm; says nothing about whether it is still raised
When a human first recorded seeing this alarm; null while nobody has. Independent of cleared_at
Who acknowledged it, by name; empty while unacknowledged, or once that principal has been purged (the audit log keeps the name)
Null while the alarm is active
The component the alarm is on, by name
The component’s uuid, the stable form of component
The condition identity: one open alarm per (component, dedup_key)
The event rule that raised the alarm, by name; absent when an operator raised it
The raising rule’s uuid
The severity level the alarm was raised at, by name (see /severity-levels)
Example
{ "$schema": "/api/v1/schemas/AlarmBody.json"}default
Section titled “default ”Error
object
A URL to the JSON Schema for this object.
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
A URI reference that identifies the specific occurrence of the problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "$schema": "/api/v1/schemas/ErrorModel.json", "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}