# Event reference

{/* Generated by scripts/generate-event-reference.mjs from https://schemas.airdress.co/operator/events/v1.json (operator v0.1.138).
    Do not edit by hand: run `pnpm generate:event-reference` and commit the result. */}

An Airdress operator records what happens on your airdress as **events**: a
device asked to join, a function was applied, a certificate was renewed. Each
event has a name, a version, an audience and a fixed shape of data. This
reference is generated from the catalogue the operator publishes, so it lists
exactly what operator v0.1.138 records.

You can read the same catalogue from your own airdress with
`airdress events catalog` (or `GET /v1/events/catalog`), watch events arrive
with `airdress events tail`, and have them delivered to a URL or a function
with an `EventSubscription` resource.

**Catalogue:** [`https://schemas.airdress.co/operator/events/v1.json`](https://schemas.airdress.co/operator/events/v1.json) ·
pinned for this release: [`https://schemas.airdress.co/operator/events/v1/v0.1.138.json`](https://schemas.airdress.co/operator/events/v1/v0.1.138.json) ·
history: [`https://schemas.airdress.co/operator/events/index.json`](https://schemas.airdress.co/operator/events/index.json)

## Who receives an event

Every event has an **audience**, fixed in the operator's code. It decides who
may ever receive the event, and no setting widens it.

| Audience | In plain words | Who receives it |
| -------- | -------------- | --------------- |
| Owner | About the airdress as a whole | The owner: the owner's devices and the owner's subscriptions |
| The person it concerns | About one person on the airdress | Only that person: their own devices and the subscriptions they made. The owner's subscriptions never receive another person's events, and there is no consent setting that changes this |
| Everyone on the airdress | Harmless to everyone | Any person on the airdress |

## Where an event goes

Every event is written to the operator's **journal** as one log line at its
level, and to the **event log**, which subscriptions and `airdress events
tail` read. From there:

- **Subscriptions.** An `EventSubscription` delivers the events it names, within
  their audience, to a URL or a function. Delivery is durable: it is retried
  until it succeeds or gives up, and it survives a restart.
- **The app's event stream.** Events marked App stream
  also reach your devices at once, under the stream name the section gives.
  The rest are not sent to the app.
- **Functions bound to the operator's events.** Events marked
  Functions are also handed to functions bound
  with `source: operator`. That path is best-effort and does not survive a
  restart; use a subscription with a function target when every event must
  arrive. Events about one person never take it, because functions act for
  the owner. Events kept off it are frequent or internal ones, and still
  reach the journal and subscriptions.

## Versions

A change to an event's data that would break a reader is a new **version**
of the event. The catalogue lists both versions until the old one is retired,
and a subscription can pin the version it understands. Each section says which operator release first carried each
version. The catalogue starts at operator v0.1.133: events older
than that were log lines before they were recorded events, and their history
starts there.

## Retired versions

None yet: every event version the operator has catalogued is still recorded.

## All events

320 events in 58 families: [`acme`](/events/acme/) (2) · [`admin`](/events/admin/) (5) · [`agent`](/events/agent/) (2) · [`agent_bus`](/events/agent-bus/) (13) · [`agent_chat`](/events/agent-chat/) (6) · [`agent_device`](/events/agent-device/) (4) · [`bootstrap`](/events/bootstrap/) (2) · [`break_glass`](/events/break-glass/) (2) · [`chat_group`](/events/chat-group/) (5) · [`config`](/events/config/) (1) · [`control`](/events/control/) (1) · [`device`](/events/device/) (2) · [`device_join`](/events/device-join/) (8) · [`dns`](/events/dns/) (7) · [`enrollment`](/events/enrollment/) (7) · [`event_subscription`](/events/event-subscription/) (7) · [`federation`](/events/federation/) (8) · [`function`](/events/function/) (21) · [`functions`](/events/functions/) (2) · [`grant`](/events/grant/) (2) · [`handshake`](/events/handshake/) (1) · [`home`](/events/home/) (23) · [`hook`](/events/hook/) (1) · [`host_link`](/events/host-link/) (8) · [`household`](/events/household/) (2) · [`identity`](/events/identity/) (7) · [`idle`](/events/idle/) (3) · [`ingress`](/events/ingress/) (2) · [`intercept`](/events/intercept/) (2) · [`key_package`](/events/key-package/) (2) · [`location`](/events/location/) (11) · [`machine`](/events/machine/) (16) · [`member`](/events/member/) (3) · [`member_authorization`](/events/member-authorization/) (4) · [`mls`](/events/mls/) (1) · [`operator`](/events/operator/) (1) · [`operator_key`](/events/operator-key/) (2) · [`owner`](/events/owner/) (1) · [`peer`](/events/peer/) (1) · [`peer_trust`](/events/peer-trust/) (5) · [`person`](/events/person/) (3) · [`plugin`](/events/plugin/) (41) · [`proxy`](/events/proxy/) (1) · [`publication`](/events/publication/) (1) · [`push`](/events/push/) (2) · [`ratelimit`](/events/ratelimit/) (1) · [`remote_mcp`](/events/remote-mcp/) (3) · [`revoked_grants`](/events/revoked-grants/) (6) · [`root_recovery`](/events/root-recovery/) (4) · [`schedule`](/events/schedule/) (2) · [`shell`](/events/shell/) (24) · [`shells`](/events/shells/) (1) · [`subname`](/events/subname/) (2) · [`switches`](/events/switches/) (3) · [`thing`](/events/thing/) (13) · [`tls`](/events/tls/) (7) · [`token`](/events/token/) (2) · [`unit`](/events/unit/) (1)

| Event | Version | Audience | Level | App stream | Functions | First carried by |
| ----- | ------- | -------- | ----- | ---------- | --------- | ---------------- |
| [`airdress.acme.challenge_path`](/events/acme/#airdress.acme.challenge_path) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.acme.hub_bridge_retired`](/events/acme/#airdress.acme.hub_bridge_retired) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.admin.credential_refused`](/events/admin/#airdress.admin.credential_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.admin.credential_unavailable`](/events/admin/#airdress.admin.credential_unavailable) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.admin.not_started`](/events/admin/#airdress.admin.not_started) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.admin.peer_refused`](/events/admin/#airdress.admin.peer_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.admin.stopped`](/events/admin/#airdress.admin.stopped) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.agent.root_key_diverged`](/events/agent/#airdress.agent.root_key_diverged) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.agent.root_key_pinned_on_first_contact`](/events/agent/#airdress.agent.root_key_pinned_on_first_contact) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_bus.attestation.issued`](/events/agent-bus/#airdress.agent_bus.attestation.issued) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.claim.acquired`](/events/agent-bus/#airdress.agent_bus.claim.acquired) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.claim.broken`](/events/agent-bus/#airdress.agent_bus.claim.broken) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.agent_bus.claim.handed_off`](/events/agent-bus/#airdress.agent_bus.claim.handed_off) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.claim.lapsed`](/events/agent-bus/#airdress.agent_bus.claim.lapsed) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.fence.refused`](/events/agent-bus/#airdress.agent_bus.fence.refused) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.message.refused`](/events/agent-bus/#airdress.agent_bus.message.refused) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.policy.changed`](/events/agent-bus/#airdress.agent_bus.policy.changed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_bus.session.ended`](/events/agent-bus/#airdress.agent_bus.session.ended) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.session.started`](/events/agent-bus/#airdress.agent_bus.session.started) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.signature.refused`](/events/agent-bus/#airdress.agent_bus.signature.refused) | 1 | The person it concerns | warn | no | no | v0.1.138 |
| [`airdress.agent_bus.state.conflict`](/events/agent-bus/#airdress.agent_bus.state.conflict) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.agent_bus.sweep.completed`](/events/agent-bus/#airdress.agent_bus.sweep.completed) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.agent_chat.added`](/events/agent-chat/#airdress.agent_chat.added) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_chat.assigned`](/events/agent-chat/#airdress.agent_chat.assigned) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_chat.lane_created`](/events/agent-chat/#airdress.agent_chat.lane_created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_chat.no_lane`](/events/agent-chat/#airdress.agent_chat.no_lane) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.agent_chat.removed`](/events/agent-chat/#airdress.agent_chat.removed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_chat.unassigned`](/events/agent-chat/#airdress.agent_chat.unassigned) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_device.refused`](/events/agent-device/#airdress.agent_device.refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.agent_device.renewed`](/events/agent-device/#airdress.agent_device.renewed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_device.resumed`](/events/agent-device/#airdress.agent_device.resumed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.agent_device.suspended`](/events/agent-device/#airdress.agent_device.suspended) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.bootstrap.backoff`](/events/bootstrap/#airdress.bootstrap.backoff) | 1 | Owner | warn | no | no | v0.1.135 |
| [`airdress.bootstrap.rejected`](/events/bootstrap/#airdress.bootstrap.rejected) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.break_glass.owner_token_minted`](/events/break-glass/#airdress.break_glass.owner_token_minted) | 1 | Owner | warn | no | no | v0.1.135 |
| [`airdress.break_glass.root_key_reset`](/events/break-glass/#airdress.break_glass.root_key_reset) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.chat_group.created`](/events/chat-group/#airdress.chat_group.created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.chat_group.envelope.no_subscriber`](/events/chat-group/#airdress.chat_group.envelope.no_subscriber) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.chat_group.epoch.claimed`](/events/chat-group/#airdress.chat_group.epoch.claimed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.chat_group.epoch.conflict`](/events/chat-group/#airdress.chat_group.epoch.conflict) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.chat_group.sequencer.moved`](/events/chat-group/#airdress.chat_group.sequencer.moved) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.config.weak_bootstrap_token`](/events/config/#airdress.config.weak_bootstrap_token) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.control.invoked`](/events/control/#airdress.control.invoked) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.device.delegation_only.refused`](/events/device/#airdress.device.delegation_only.refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.device.sub_user.refused`](/events/device/#airdress.device.sub_user.refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.device_join.approved`](/events/device-join/#airdress.device_join.approved) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.device_join.approved_by_delegation`](/events/device-join/#airdress.device_join.approved_by_delegation) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.device_join.cleared_by_reset`](/events/device-join/#airdress.device_join.cleared_by_reset) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.device_join.declined`](/events/device-join/#airdress.device_join.declined) | 1 | Owner | warn | yes | yes | v0.1.133 |
| [`airdress.device_join.delegation_refused`](/events/device-join/#airdress.device_join.delegation_refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.device_join.expired`](/events/device-join/#airdress.device_join.expired) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.device_join.requested`](/events/device-join/#airdress.device_join.requested) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.device_join.withdrawn`](/events/device-join/#airdress.device_join.withdrawn) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.dns.delegation_report.refused`](/events/dns/#airdress.dns.delegation_report.refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.dns.delegation_report.sent`](/events/dns/#airdress.dns.delegation_report.sent) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.dns.transfer.enabled`](/events/dns/#airdress.dns.transfer.enabled) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.dns.transfer.key_created`](/events/dns/#airdress.dns.transfer.key_created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.dns.transfer.notify_failed`](/events/dns/#airdress.dns.transfer.notify_failed) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.dns.transfer.refused`](/events/dns/#airdress.dns.transfer.refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.dns.transfer.served`](/events/dns/#airdress.dns.transfer.served) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.enrollment.airdress_not_served`](/events/enrollment/#airdress.enrollment.airdress_not_served) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.enrollment.delegation_stale`](/events/enrollment/#airdress.enrollment.delegation_stale) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.enrollment.idle_revoked`](/events/enrollment/#airdress.enrollment.idle_revoked) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.enrollment.root_adopted`](/events/enrollment/#airdress.enrollment.root_adopted) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.enrollment.root_key_mismatch`](/events/enrollment/#airdress.enrollment.root_key_mismatch) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.enrollment.sibling_enrolled`](/events/enrollment/#airdress.enrollment.sibling_enrolled) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.enrollment.sibling_revoked`](/events/enrollment/#airdress.enrollment.sibling_revoked) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.event_subscription.applied`](/events/event-subscription/#airdress.event_subscription.applied) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.event_subscription.delivery_abandoned`](/events/event-subscription/#airdress.event_subscription.delivery_abandoned) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.event_subscription.delivery_failed`](/events/event-subscription/#airdress.event_subscription.delivery_failed) | 1 | Owner | info | no | no | v0.1.133 |
| [`airdress.event_subscription.disabled`](/events/event-subscription/#airdress.event_subscription.disabled) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.event_subscription.owner_disabled`](/events/event-subscription/#airdress.event_subscription.owner_disabled) | 1 | The person it concerns | warn | yes | no | v0.1.133 |
| [`airdress.event_subscription.owner_lifted`](/events/event-subscription/#airdress.event_subscription.owner_lifted) | 1 | The person it concerns | info | yes | no | v0.1.133 |
| [`airdress.event_subscription.test.sent`](/events/event-subscription/#airdress.event_subscription.test.sent) | 1 | The person it concerns | info | no | no | v0.1.133 |
| [`airdress.federation.binding_conflict`](/events/federation/#airdress.federation.binding_conflict) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.federation.binding_refused`](/events/federation/#airdress.federation.binding_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.federation.delivery_status_changed`](/events/federation/#airdress.federation.delivery_status_changed) | 1 | Owner | debug | yes | no | v0.1.133 |
| [`airdress.federation.from_not_authorized`](/events/federation/#airdress.federation.from_not_authorized) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.federation.own_binding_expired`](/events/federation/#airdress.federation.own_binding_expired) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.federation.own_binding_refreshed`](/events/federation/#airdress.federation.own_binding_refreshed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.federation.peer_admitted`](/events/federation/#airdress.federation.peer_admitted) | 1 | Owner | debug | no | no | v0.1.138 |
| [`airdress.federation.request_received`](/events/federation/#airdress.federation.request_received) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.function.config_unavailable`](/events/function/#airdress.function.config_unavailable) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.function.event.deduplicated`](/events/function/#airdress.function.event.deduplicated) | 1 | Owner | debug | no | no | v0.1.133 |
| [`airdress.function.events_lagged`](/events/function/#airdress.function.events_lagged) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.function.filter.failed`](/events/function/#airdress.function.filter.failed) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.function.load_failed`](/events/function/#airdress.function.load_failed) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.function.loaded`](/events/function/#airdress.function.loaded) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.logs.evicted`](/events/function/#airdress.function.logs.evicted) | 1 | Owner | info | no | no | v0.1.133 |
| [`airdress.function.quarantined`](/events/function/#airdress.function.quarantined) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.function.sdk.withdrawn`](/events/function/#airdress.function.sdk.withdrawn) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.function.source.published`](/events/function/#airdress.function.source.published) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.source.refused`](/events/function/#airdress.function.source.refused) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.source.stale_write_refused`](/events/function/#airdress.function.source.stale_write_refused) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.tool.deduplicated`](/events/function/#airdress.function.tool.deduplicated) | 1 | Owner | info | no | no | v0.1.133 |
| [`airdress.function.unsigned_bundle_accepted`](/events/function/#airdress.function.unsigned_bundle_accepted) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.function.unsigned_source_accepted`](/events/function/#airdress.function.unsigned_source_accepted) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.function.unsigned_source_loaded`](/events/function/#airdress.function.unsigned_source_loaded) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.function.version.deployed`](/events/function/#airdress.function.version.deployed) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.version.evicted`](/events/function/#airdress.function.version.evicted) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.version.promote_refused`](/events/function/#airdress.function.version.promote_refused) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.version.promoted`](/events/function/#airdress.function.version.promoted) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.function.version_refused`](/events/function/#airdress.function.version_refused) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.functions.engine_compiled_in_place`](/events/functions/#airdress.functions.engine_compiled_in_place) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.functions.signing_unavailable`](/events/functions/#airdress.functions.signing_unavailable) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.grant.created`](/events/grant/#airdress.grant.created) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.grant.revoked`](/events/grant/#airdress.grant.revoked) | 1 | Owner | info | no | yes | v0.1.133 |
| [`airdress.handshake.pending`](/events/handshake/#airdress.handshake.pending) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.home.channel.ended`](/events/home/#airdress.home.channel.ended) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.channel.opened`](/events/home/#airdress.home.channel.opened) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.channel.refused`](/events/home/#airdress.home.channel.refused) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.channel.revoked`](/events/home/#airdress.home.channel.revoked) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.conversation.created`](/events/home/#airdress.home.conversation.created) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.conversation.failed`](/events/home/#airdress.home.conversation.failed) | 1 | Owner | warn | no | yes | v0.1.137 |
| [`airdress.home.conversation.opened`](/events/home/#airdress.home.conversation.opened) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.deleted`](/events/home/#airdress.home.deleted) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.frame.received`](/events/home/#airdress.home.frame.received) | 1 | Owner | debug | no | no | v0.1.137 |
| [`airdress.home.hourly`](/events/home/#airdress.home.hourly) | 1 | Owner | info | no | no | v0.1.137 |
| [`airdress.home.liveness.listen_failed`](/events/home/#airdress.home.liveness.listen_failed) | 1 | Owner | warn | no | yes | v0.1.137 |
| [`airdress.home.liveness.unavailable`](/events/home/#airdress.home.liveness.unavailable) | 1 | Owner | warn | no | yes | v0.1.137 |
| [`airdress.home.notify.delivered`](/events/home/#airdress.home.notify.delivered) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.notify.failed`](/events/home/#airdress.home.notify.failed) | 1 | Owner | warn | no | yes | v0.1.137 |
| [`airdress.home.notify.refused`](/events/home/#airdress.home.notify.refused) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.observe.dropped`](/events/home/#airdress.home.observe.dropped) | 1 | Owner | debug | no | no | v0.1.137 |
| [`airdress.home.probe`](/events/home/#airdress.home.probe) | 1 | Owner | info | no | no | v0.1.137 |
| [`airdress.home.service.called`](/events/home/#airdress.home.service.called) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.service.refused`](/events/home/#airdress.home.service.refused) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.session.closed`](/events/home/#airdress.home.session.closed) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.session.displaced`](/events/home/#airdress.home.session.displaced) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.session.opened`](/events/home/#airdress.home.session.opened) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.home.shared.received`](/events/home/#airdress.home.shared.received) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.hook.breaker_opened`](/events/hook/#airdress.hook.breaker_opened) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.host_link.checkpoint.completed`](/events/host-link/#airdress.host_link.checkpoint.completed) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.host_link.checkpoint.failed`](/events/host-link/#airdress.host_link.checkpoint.failed) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.host_link.listening`](/events/host-link/#airdress.host_link.listening) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.host_link.peer_refused`](/events/host-link/#airdress.host_link.peer_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.host_link.stopped`](/events/host-link/#airdress.host_link.stopped) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.host_link.switches.set`](/events/host-link/#airdress.host_link.switches.set) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.host_link.switches.unwritable`](/events/host-link/#airdress.host_link.switches.unwritable) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.host_link.unavailable`](/events/host-link/#airdress.host_link.unavailable) | 1 | Owner | error | no | yes | v0.1.138 |
| [`airdress.household.setting.announced`](/events/household/#airdress.household.setting.announced) | 1 | Owner | info | yes | yes | v0.1.133 |
| [`airdress.household.setting.changed`](/events/household/#airdress.household.setting.changed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.identity.key_created`](/events/identity/#airdress.identity.key_created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.identity.key_rotated`](/events/identity/#airdress.identity.key_rotated) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.identity.key_unreadable`](/events/identity/#airdress.identity.key_unreadable) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.identity.keys_published`](/events/identity/#airdress.identity.keys_published) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.identity.keys_unavailable`](/events/identity/#airdress.identity.keys_unavailable) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.identity.transport_certificate_issued`](/events/identity/#airdress.identity.transport_certificate_issued) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.identity.transport_unavailable`](/events/identity/#airdress.identity.transport_unavailable) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.idle.probe_deferred`](/events/idle/#airdress.idle.probe_deferred) | 1 | Owner | debug | no | no | v0.1.136 |
| [`airdress.idle.reaped`](/events/idle/#airdress.idle.reaped) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.idle.reported`](/events/idle/#airdress.idle.reported) | 1 | Owner | debug | no | no | v0.1.136 |
| [`airdress.ingress.static_bearer`](/events/ingress/#airdress.ingress.static_bearer) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.ingress.static_bearer_legacy`](/events/ingress/#airdress.ingress.static_bearer_legacy) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.intercept.denied`](/events/intercept/#airdress.intercept.denied) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.intercept.hook_failed`](/events/intercept/#airdress.intercept.hook_failed) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.key_package.retired_form_purged`](/events/key-package/#airdress.key_package.retired_form_purged) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.key_package.undecodable`](/events/key-package/#airdress.key_package.undecodable) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.location.consent.changed`](/events/location/#airdress.location.consent.changed) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.event.received`](/events/location/#airdress.location.event.received) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.events.erased`](/events/location/#airdress.location.events.erased) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.events.expired`](/events/location/#airdress.location.events.expired) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.location.model_call.refused`](/events/location/#airdress.location.model_call.refused) | 1 | Owner | warn | no | yes | v0.1.133 |
| [`airdress.location.request.refused`](/events/location/#airdress.location.request.refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.location.track.ended`](/events/location/#airdress.location.track.ended) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.track.lost`](/events/location/#airdress.location.track.lost) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.track.recovered`](/events/location/#airdress.location.track.recovered) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.track.silent`](/events/location/#airdress.location.track.silent) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.location.track.started`](/events/location/#airdress.location.track.started) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.machine.approval_renewed`](/events/machine/#airdress.machine.approval_renewed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.approved`](/events/machine/#airdress.machine.approved) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.authorization_changed`](/events/machine/#airdress.machine.authorization_changed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.denied`](/events/machine/#airdress.machine.denied) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.discovery_advertised`](/events/machine/#airdress.machine.discovery_advertised) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.enrolled`](/events/machine/#airdress.machine.enrolled) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.machine.enrollment_requested`](/events/machine/#airdress.machine.enrollment_requested) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.linked`](/events/machine/#airdress.machine.linked) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.preauth_key.created`](/events/machine/#airdress.machine.preauth_key.created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.preauth_key.redeemed`](/events/machine/#airdress.machine.preauth_key.redeemed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.preauth_key.refused`](/events/machine/#airdress.machine.preauth_key.refused) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.machine.preauth_key.revoked`](/events/machine/#airdress.machine.preauth_key.revoked) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.reauth_requested`](/events/machine/#airdress.machine.reauth_requested) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.revoked`](/events/machine/#airdress.machine.revoked) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.machine.source_key.compromised`](/events/machine/#airdress.machine.source_key.compromised) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.machine.source_key_added`](/events/machine/#airdress.machine.source_key_added) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.member.account_binding.bound`](/events/member/#airdress.member.account_binding.bound) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.member.account_binding.enabled`](/events/member/#airdress.member.account_binding.enabled) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.member.account_binding.offered`](/events/member/#airdress.member.account_binding.offered) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.member_authorization.asserted`](/events/member-authorization/#airdress.member_authorization.asserted) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.member_authorization.enabled`](/events/member-authorization/#airdress.member_authorization.enabled) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.member_authorization.not_a_member`](/events/member-authorization/#airdress.member_authorization.not_a_member) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.member_authorization.request_refused`](/events/member-authorization/#airdress.member_authorization.request_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.mls.revocation_queried`](/events/mls/#airdress.mls.revocation_queried) | 1 | Owner | debug | no | no | v0.1.138 |
| [`airdress.operator.started`](/events/operator/#airdress.operator.started) | 1 | Everyone on the airdress | info | no | yes | v0.1.133 |
| [`airdress.operator_key.moved_to_airdress`](/events/operator-key/#airdress.operator_key.moved_to_airdress) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.operator_key.name_rows_left`](/events/operator-key/#airdress.operator_key.name_rows_left) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.owner.rebound`](/events/owner/#airdress.owner.rebound) | 1 | Owner | warn | no | no | v0.1.135 |
| [`airdress.peer.registry_conflict`](/events/peer/#airdress.peer.registry_conflict) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.peer_trust.added`](/events/peer-trust/#airdress.peer_trust.added) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.peer_trust.changed`](/events/peer-trust/#airdress.peer_trust.changed) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.peer_trust.conflict`](/events/peer-trust/#airdress.peer_trust.conflict) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.peer_trust.revoked`](/events/peer-trust/#airdress.peer_trust.revoked) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.peer_trust.rotated`](/events/peer-trust/#airdress.peer_trust.rotated) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.person.contact_tag.rotated`](/events/person/#airdress.person.contact_tag.rotated) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.person.root.mismatched`](/events/person/#airdress.person.root.mismatched) | 1 | The person it concerns | warn | no | no | v0.1.138 |
| [`airdress.person.root.pinned`](/events/person/#airdress.person.root.pinned) | 1 | The person it concerns | info | no | no | v0.1.138 |
| [`airdress.plugin.assertion.refused`](/events/plugin/#airdress.plugin.assertion.refused) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.author_key.revoked`](/events/plugin/#airdress.plugin.author_key.revoked) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.authorization.granted`](/events/plugin/#airdress.plugin.authorization.granted) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.authorization.offer_changed`](/events/plugin/#airdress.plugin.authorization.offer_changed) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.authorization.revoked`](/events/plugin/#airdress.plugin.authorization.revoked) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.config.invalid`](/events/plugin/#airdress.plugin.config.invalid) | 1 | Owner | error | no | yes | v0.1.135 |
| [`airdress.plugin.egress.refused`](/events/plugin/#airdress.plugin.egress.refused) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.export.written`](/events/plugin/#airdress.plugin.export.written) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.grant.created`](/events/plugin/#airdress.plugin.grant.created) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.grant.revoked`](/events/plugin/#airdress.plugin.grant.revoked) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.host.call_refused`](/events/plugin/#airdress.plugin.host.call_refused) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.host.decided`](/events/plugin/#airdress.plugin.host.decided) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.host.key_created`](/events/plugin/#airdress.plugin.host.key_created) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.host.key_released`](/events/plugin/#airdress.plugin.host.key_released) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.host.peer_mismatch`](/events/plugin/#airdress.plugin.host.peer_mismatch) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.index.unverified`](/events/plugin/#airdress.plugin.index.unverified) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.install.completed`](/events/plugin/#airdress.plugin.install.completed) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.install.failed`](/events/plugin/#airdress.plugin.install.failed) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.install.not_served`](/events/plugin/#airdress.plugin.install.not_served) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.install.quarantined`](/events/plugin/#airdress.plugin.install.quarantined) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.install.rolled_back`](/events/plugin/#airdress.plugin.install.rolled_back) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.install.started`](/events/plugin/#airdress.plugin.install.started) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.install.unsigned`](/events/plugin/#airdress.plugin.install.unsigned) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.instance.exited`](/events/plugin/#airdress.plugin.instance.exited) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.instance.not_ready`](/events/plugin/#airdress.plugin.instance.not_ready) | 1 | Owner | error | no | yes | v0.1.135 |
| [`airdress.plugin.instance.unhealthy`](/events/plugin/#airdress.plugin.instance.unhealthy) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.kind.applied`](/events/plugin/#airdress.plugin.kind.applied) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.kind.deleted`](/events/plugin/#airdress.plugin.kind.deleted) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.log`](/events/plugin/#airdress.plugin.log) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.log_dropped`](/events/plugin/#airdress.plugin.log_dropped) | 1 | Owner | warn | no | no | v0.1.135 |
| [`airdress.plugin.name_published`](/events/plugin/#airdress.plugin.name_published) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.name_withdrawn`](/events/plugin/#airdress.plugin.name_withdrawn) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.parent_name_withdrawn`](/events/plugin/#airdress.plugin.parent_name_withdrawn) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.principal.erased`](/events/plugin/#airdress.plugin.principal.erased) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.principal.revoked`](/events/plugin/#airdress.plugin.principal.revoked) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.proxy.refused`](/events/plugin/#airdress.plugin.proxy.refused) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.sandbox.insecure`](/events/plugin/#airdress.plugin.sandbox.insecure) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.session.swept`](/events/plugin/#airdress.plugin.session.swept) | 1 | Owner | info | no | no | v0.1.135 |
| [`airdress.plugin.socket.refused`](/events/plugin/#airdress.plugin.socket.refused) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.plugin.uninstall.completed`](/events/plugin/#airdress.plugin.uninstall.completed) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.plugin.wake`](/events/plugin/#airdress.plugin.wake) | 1 | Owner | info | no | yes | v0.1.135 |
| [`airdress.proxy.admin_path_refused`](/events/proxy/#airdress.proxy.admin_path_refused) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.publication.block_changed`](/events/publication/#airdress.publication.block_changed) | 1 | The person it concerns | info | yes | no | v0.1.133 |
| [`airdress.push.envelope_wake.deferred`](/events/push/#airdress.push.envelope_wake.deferred) | 1 | Owner | debug | no | no | v0.1.138 |
| [`airdress.push.envelope_wake.sent`](/events/push/#airdress.push.envelope_wake.sent) | 1 | Owner | debug | no | no | v0.1.138 |
| [`airdress.ratelimit.unauthenticated_key`](/events/ratelimit/#airdress.ratelimit.unauthenticated_key) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.remote_mcp.session_ended`](/events/remote-mcp/#airdress.remote_mcp.session_ended) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.remote_mcp.session_opened`](/events/remote-mcp/#airdress.remote_mcp.session_opened) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.remote_mcp.token_refused`](/events/remote-mcp/#airdress.remote_mcp.token_refused) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.revoked_grants.cursor_refused`](/events/revoked-grants/#airdress.revoked_grants.cursor_refused) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.revoked_grants.feed_refused`](/events/revoked-grants/#airdress.revoked_grants.feed_refused) | 1 | Owner | error | no | no | v0.1.138 |
| [`airdress.revoked_grants.feed_unavailable`](/events/revoked-grants/#airdress.revoked_grants.feed_unavailable) | 1 | Owner | warn | no | no | v0.1.138 |
| [`airdress.revoked_grants.learned`](/events/revoked-grants/#airdress.revoked_grants.learned) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.revoked_grants.not_polled`](/events/revoked-grants/#airdress.revoked_grants.not_polled) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.revoked_grants.stream_ended`](/events/revoked-grants/#airdress.revoked_grants.stream_ended) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.root_recovery.cancelled`](/events/root-recovery/#airdress.root_recovery.cancelled) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.root_recovery.executed`](/events/root-recovery/#airdress.root_recovery.executed) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.root_recovery.rejected`](/events/root-recovery/#airdress.root_recovery.rejected) | 1 | Owner | warn | no | yes | v0.1.135 |
| [`airdress.root_recovery.scheduled`](/events/root-recovery/#airdress.root_recovery.scheduled) | 1 | Owner | warn | yes | no | v0.1.133 |
| [`airdress.schedule.token_minted`](/events/schedule/#airdress.schedule.token_minted) | 1 | Owner | debug | no | no | v0.1.133 |
| [`airdress.schedule.token_refused`](/events/schedule/#airdress.schedule.token_refused) | 1 | Owner | warn | no | no | v0.1.133 |
| [`airdress.shell.attention`](/events/shell/#airdress.shell.attention) | 1 | The person it concerns | info | yes | no | v0.1.133 |
| [`airdress.shell.attention.sent`](/events/shell/#airdress.shell.attention.sent) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.device.revoked`](/events/shell/#airdress.shell.device.revoked) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.device_key.introduced`](/events/shell/#airdress.shell.device_key.introduced) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.device_key.registered`](/events/shell/#airdress.shell.device_key.registered) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.host.connected`](/events/shell/#airdress.shell.host.connected) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.host.deleted`](/events/shell/#airdress.shell.host.deleted) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.shell.host.disconnected`](/events/shell/#airdress.shell.host.disconnected) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.host.linked`](/events/shell/#airdress.shell.host.linked) | 1 | The person it concerns | info | yes | no | v0.1.133 |
| [`airdress.shell.host.linked_unannounced`](/events/shell/#airdress.shell.host.linked_unannounced) | 1 | Owner | warn | no | yes | v0.1.137 |
| [`airdress.shell.host.pin_mismatch`](/events/shell/#airdress.shell.host.pin_mismatch) | 1 | Owner | warn | no | no | v0.1.137 |
| [`airdress.shell.host.profiles_changed`](/events/shell/#airdress.shell.host.profiles_changed) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.host.refused`](/events/shell/#airdress.shell.host.refused) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.shell.host.revoked`](/events/shell/#airdress.shell.host.revoked) | 1 | Owner | info | no | yes | v0.1.137 |
| [`airdress.shell.host.runs_as_root`](/events/shell/#airdress.shell.host.runs_as_root) | 1 | Owner | warn | no | no | v0.1.137 |
| [`airdress.shell.host.stopping`](/events/shell/#airdress.shell.host.stopping) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.liveness.listen_failed`](/events/shell/#airdress.shell.liveness.listen_failed) | 1 | Owner | warn | no | no | v0.1.137 |
| [`airdress.shell.session.attached`](/events/shell/#airdress.shell.session.attached) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.session.closed`](/events/shell/#airdress.shell.session.closed) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.session.detached`](/events/shell/#airdress.shell.session.detached) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.session.input_moved`](/events/shell/#airdress.shell.session.input_moved) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.session.opened`](/events/shell/#airdress.shell.session.opened) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.session.refused`](/events/shell/#airdress.shell.session.refused) | 1 | The person it concerns | info | no | no | v0.1.137 |
| [`airdress.shell.switched_off`](/events/shell/#airdress.shell.switched_off) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.shells.host_binding_refused`](/events/shells/#airdress.shells.host_binding_refused) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.subname.created`](/events/subname/#airdress.subname.created) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.subname.deleted`](/events/subname/#airdress.subname.deleted) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.switches.applied`](/events/switches/#airdress.switches.applied) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.switches.rejected`](/events/switches/#airdress.switches.rejected) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.switches.reloaded`](/events/switches/#airdress.switches.reloaded) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.announce.drifted`](/events/thing/#airdress.thing.announce.drifted) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.thing.channel.closed`](/events/thing/#airdress.thing.channel.closed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.channel.opened`](/events/thing/#airdress.thing.channel.opened) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.command.answered`](/events/thing/#airdress.thing.command.answered) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.command.refused`](/events/thing/#airdress.thing.command.refused) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.command.result_unclaimed`](/events/thing/#airdress.thing.command.result_unclaimed) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.command.sent`](/events/thing/#airdress.thing.command.sent) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.command.timed_out`](/events/thing/#airdress.thing.command.timed_out) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.deleted`](/events/thing/#airdress.thing.deleted) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.thing.events.dropped_on_device`](/events/thing/#airdress.thing.events.dropped_on_device) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.thing.events.refused`](/events/thing/#airdress.thing.events.refused) | 1 | Owner | info | no | no | v0.1.138 |
| [`airdress.thing.liveness.unavailable`](/events/thing/#airdress.thing.liveness.unavailable) | 1 | Owner | warn | no | yes | v0.1.138 |
| [`airdress.thing.request.refused`](/events/thing/#airdress.thing.request.refused) | 1 | Owner | info | no | yes | v0.1.138 |
| [`airdress.tls.own_cert_issued_on_retry`](/events/tls/#airdress.tls.own_cert_issued_on_retry) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.tls.own_cert_retry_failed`](/events/tls/#airdress.tls.own_cert_retry_failed) | 1 | Owner | warn | no | no | v0.1.136 |
| [`airdress.tls.owner_renew_refused`](/events/tls/#airdress.tls.owner_renew_refused) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.tls.owner_renew_requested`](/events/tls/#airdress.tls.owner_renew_requested) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.tls.renew_failed`](/events/tls/#airdress.tls.renew_failed) | 1 | Owner | warn | no | yes | v0.1.136 |
| [`airdress.tls.renew_started`](/events/tls/#airdress.tls.renew_started) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.tls.renew_succeeded`](/events/tls/#airdress.tls.renew_succeeded) | 1 | Owner | info | no | yes | v0.1.136 |
| [`airdress.token.minted`](/events/token/#airdress.token.minted) | 1 | Owner | info | no | no | v0.1.133 |
| [`airdress.token.root_key_created`](/events/token/#airdress.token.root_key_created) | 1 | Owner | info | no | no | v0.1.133 |
| [`airdress.unit.drift_detected`](/events/unit/#airdress.unit.drift_detected) | 1 | Owner | warn | no | yes | v0.1.136 |

## Interception points

Besides recording events, the operator stops at a few named places before it
acts, where a `Hook` may change or refuse what is about to happen. They are a
closed list.

### `airdress.function.will_invoke`

A function is about to be invoked: over its HTTP route, or with an event (a binding, or a subscription's function target). Validate only.

A hook may not change anything here; it may only allow or refuse. The strictest failure policy it may set is `fail`. First carried by operator v0.1.133.

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `actor` | string or null | no | For a request: who is calling, as the request context recorded it. |
| `event_id` | string or null | no |  |
| `event_source` | string or null | no | For an event: its `CloudEvent` `source` and `id`. |
| `name` | string | yes | The function's name. (Not `function`: that is a reserved word in CEL, so a hook could never name the field.) |
| `trigger` | string | yes | `http` or `event`. |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A function is about to be invoked: over its HTTP route, or with an event (a binding, or a subscription's function target). Validate only.",
  "properties": {
    "actor": {
      "default": null,
      "description": "For a request: who is calling, as the request context recorded it.",
      "type": [
        "string",
        "null"
      ]
    },
    "event_id": {
      "default": null,
      "type": [
        "string",
        "null"
      ]
    },
    "event_source": {
      "default": null,
      "description": "For an event: its `CloudEvent` `source` and `id`.",
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "description": "The function's name. (Not `function`: that is a reserved word in CEL, so a hook could never name the field.)",
      "type": "string"
    },
    "trigger": {
      "description": "`http` or `event`.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "trigger"
  ],
  "title": "FunctionWillInvoke",
  "type": "object"
}
```

</details>

### `airdress.resource.will_apply`

A resource is about to be created or replaced through `/v1/apply`.

Raised after the applier's authorization and the Kind's own validation, before anything is stored. A mutating hook may change its labels and spec; the result is validated and authorized again. Never raised for a `Hook`.

A hook may change `labels` and `spec`. The strictest failure policy it may set is `fail`. First carried by operator v0.1.133.

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `actor` | string | yes | Who is applying: the owner's subject or `machine:&lt;id&gt;`. |
| `dry_run` | boolean | yes | A dry run is intercepted too, and reports what would happen. |
| `kind` | string | yes |  |
| `labels` | object | no |  |
| `name` | string | yes |  |
| `spec` | any | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A resource is about to be created or replaced through `/v1/apply`.\n\nRaised after the applier's authorization and the Kind's own validation, before anything is stored. A mutating hook may change its labels and spec; the result is validated and authorized again. Never raised for a `Hook`.",
  "properties": {
    "actor": {
      "description": "Who is applying: the owner's subject or `machine:<id>`.",
      "type": "string"
    },
    "dry_run": {
      "description": "A dry run is intercepted too, and reports what would happen.",
      "type": "boolean"
    },
    "kind": {
      "type": "string"
    },
    "labels": {
      "additionalProperties": {
        "type": "string"
      },
      "default": {},
      "type": "object"
    },
    "name": {
      "type": "string"
    },
    "spec": true
  },
  "required": [
    "actor",
    "dry_run",
    "kind",
    "name",
    "spec"
  ],
  "title": "ResourceWillApply",
  "type": "object"
}
```

</details>

### `airdress.resource.will_delete`

A resource is about to be deleted. Validate only. Never raised for a `Hook`: a hook cannot block its own removal.

A hook may not change anything here; it may only allow or refuse. The strictest failure policy it may set is `fail`. First carried by operator v0.1.133.

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `actor` | string | yes |  |
| `kind` | string | yes |  |
| `name` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A resource is about to be deleted. Validate only. Never raised for a `Hook`: a hook cannot block its own removal.",
  "properties": {
    "actor": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  },
  "required": [
    "actor",
    "kind",
    "name"
  ],
  "title": "ResourceWillDelete",
  "type": "object"
}
```

</details>