Skip to content

Rename an event rule

POST
/event-rules/{name}:rename
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.

name
required

The rule’s current name

string

The rule’s current name

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
name
required

The rule’s new name, unique among rules (lowercase letters, digits, hyphens)

string
>= 1 characters <= 100 characters /^[a-z0-9][a-z0-9-]*$/

OK

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
clear_criteria

When the sample meets this for clear_sustain, the condition ends (and the alarm clears); absent, the negation of fire_criteria

object
expr
required

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”

string
clear_event_type

The event type the rule writes when its condition ends, by name; absent, it writes none

string
clear_sustain
required

How long the clear criteria must hold, a Go duration

string
conditions_in_force
required

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)

integer format: int64
criteria_error

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
code

The registered diagnostic that gave it, when one did (documented on the expressions page)

string
column

The 1-based column of the fault, when it has one

integer format: int64
field
required

Which criteria

string
Allowed values: fire_criteria clear_criteria
line

The 1-based line of the fault, when it has one

integer format: int64
message
required
string
criteria_warnings

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

Array<object> | null
object
code

The registered diagnostic that gave it, when one did (documented on the expressions page)

string
column

The 1-based column of the fault, when it has one

integer format: int64
field
required

Which criteria

string
Allowed values: fire_criteria clear_criteria
line

The 1-based line of the fault, when it has one

integer format: int64
message
required
string
description
string
enabled
required
boolean
fire_criteria
required

When the sample meets this for fire_sustain, the rule’s condition starts (and it opens an alarm when it names a severity)

object
expr
required

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”

string
fire_event_type
required

The event type the rule writes when its condition starts, by name

string
fire_sustain
required

How long the fire criteria must hold, a Go duration (0s fires at once)

string
id
required

The rule’s uuid, the stable form of name

string
label
string
last_judged_at

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

string format: date-time
message

The alarm’s message; empty uses the rule’s label or name

string
name
required
string
official
required

Shipped with the platform and read-only

boolean
open_alarms
required

How many alarms the rule raised are still open right now (its live state; GET /event-rules/{name}/state lists them)

integer format: int64
pending_streaks
required

How many of the rule’s streaks are waiting out a sustain right now

integer format: int64
sample_key
required

The property or metric the rule reads

string
sample_lane
required

Which lane the key reads, derived from the registries

string
Allowed values: property metric
selector
required

The components the rule watches; both lists empty is every component

object
component_types

Watch components whose type falls within one of these component types

Array<string> | null
components

Watch these components (by name or id on write; ids on read)

Array<string> | null
severity

The severity level the alarm is raised at, by name; absent, the rule is informational and raises no alarm

string
version
required

Bumps on every update

integer format: int64
Example
{
"$schema": "/api/v1/schemas/EventRuleBody.json",
"criteria_error": {
"field": "fire_criteria"
},
"criteria_warnings": [
{
"field": "fire_criteria"
}
],
"sample_lane": "property"
}

Error

Media type application/problem+json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
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"
}