Rename an event rule
const url = 'https://example.com/api/v1/event-rules/example:rename';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"name":"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/event-rules/example:rename \ --header 'Content-Type: application/json' \ --data '{ "name": "example" }'Moves an operator rule’s name, the address an operator types. A separate act from an update, because it breaks bookmarks and integration config outside this system; inside it nothing breaks, since every reference holds the rule’s uuid (an alarm’s raised_by_rule_id and dedup key, a condition, a streak, an event’s derived_by_rule_id). Not a material change: no version bump, streaks keep running and conditions stay in force. An event keeps the name it was written under (derived_by_rule); the rule’s next events carry the new one. An official rule keeps its name (409), a taken name is a 409, an illegal or uuid-shaped one a 422. Returns the rule with its uuid. Audited. Gated by rule:update, with an all-scope grant.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The rule’s current name
The rule’s current name
Request Body required
Section titled “Request Body required ”object
A URL to the JSON Schema for this object.
The rule’s new name, unique among rules (lowercase letters, digits, hyphens)
Responses
Section titled “ Responses ”OK
object
A URL to the JSON Schema for this object.
When the sample meets this for clear_sustain, the condition ends (and the alarm clears); absent, the negation of fire_criteria
object
The criterion, an expression over the sample (value, key, instance, component.name, component.type) that yields true or false, e.g. value > 80 && instance != “aux”
The event type the rule writes when its condition ends, by name; absent, it writes none
How long the clear criteria must hold, a Go duration
How many conditions the rule holds in force right now, one per component and instance, whether or not it raises an alarm (GET /event-rules/{name}/state lists them)
Why the rule’s stored criteria do not compile (its key’s data type changed under them, a row the backfill left in short form, or an expression a newer diagnostic refuses); absent when they compile. While present the rule holds: it judges nothing
object
The registered diagnostic that gave it, when one did (documented on the expressions page)
The 1-based column of the fault, when it has one
Which criteria
The 1-based line of the fault, when it has one
The warnings the stored criteria compile with (a likely mistake, such as == against a decimal), each with its code; notes only, never a fault: the rule judges all the same
object
The registered diagnostic that gave it, when one did (documented on the expressions page)
The 1-based column of the fault, when it has one
Which criteria
The 1-based line of the fault, when it has one
When the sample meets this for fire_sustain, the rule’s condition starts (and it opens an alarm when it names a severity)
object
The criterion, an expression over the sample (value, key, instance, component.name, component.type) that yields true or false, e.g. value > 80 && instance != “aux”
The event type the rule writes when its condition starts, by name
How long the fire criteria must hold, a Go duration (0s fires at once)
The rule’s uuid, the stable form of name
When an ingested sample was last judged by the rule, to within 5s; absent when it never has been. A fleet-wide fact about the rule, naming no component
The alarm’s message; empty uses the rule’s label or name
Shipped with the platform and read-only
How many alarms the rule raised are still open right now (its live state; GET /event-rules/{name}/state lists them)
How many of the rule’s streaks are waiting out a sustain right now
The property or metric the rule reads
Which lane the key reads, derived from the registries
The components the rule watches; both lists empty is every component
object
Watch components whose type falls within one of these component types
Watch these components (by name or id on write; ids on read)
The severity level the alarm is raised at, by name; absent, the rule is informational and raises no alarm
Bumps on every update
Example
{ "$schema": "/api/v1/schemas/EventRuleBody.json", "criteria_error": { "field": "fire_criteria" }, "criteria_warnings": [ { "field": "fire_criteria" } ], "sample_lane": "property"}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"}