Protection

Publish or replace the protection manifest

Accepts YAML (text/yaml, application/yaml) or JSON. Body is the full UnifiedProtectionCard; server-side composition merges it across the platform → org → team → agent cascade and writes the canonical composed card. Requires Idempotency-Key. Honors an optional If-Match for optimistic concurrency (stale → 412). Publishing mode observe, nudge or enforce requires the agent's µ billing account (the one the gateway charges) to exist and hold a positive balance, read from billing at publish time: no account → 402 billing_unconfigured, no µ → 402 balance_depleted (both with error.details.top_up_url), billing unreachable → 503 balance_unverified. Mode off is always allowed. Plans do not gate this. Body cap 128 KiB. See ADR-008 and ADR-023.

put/protection/agent/{agent_id}

Request

  • Base URL: https://api.mnemom.ai/v1
  • URL: https://api.mnemom.ai/v1/protection/agent/{agent_id}
  • Auth: one of:
    • HTTP bearer
    • API key in header X-Mnemom-Api-Key
    • API key in cookie mnemom_session

Path parameters

agent_idstring required

Agent identifier (e.g. smolt-abc123)

Headers

Idempotency-Keystring required

Client-supplied idempotency token. Replays within 24 hours return the stored result. See ADR-023.

If-Matchstring

Optional optimistic-concurrency token. Pass the ETag from a recent GET ("sha256:<hex64>" shape) to make the write conditional: a stale ETag returns 412 Precondition Failed, a malformed one 400. Omit it to publish unconditionally.

Request body

card_versionstring required
content_versionstring

Optional. Which default content the card carries, e.g. mnemom-agent-default/2.1.0 (semver within a lineage). Distinct from card_version, the schema version. New agents are born with it; composition carries the agent card's value onto the canonical card.

card_idstring
agent_idstring required
issued_atstring date-time
expires_atstring date-time nullable
mode'off' | 'observe' | 'nudge' | 'enforce' required

Strictest-wins composition: enforce > nudge > observe > off.

extensionsobject

Free-form extension slot for non-canonical fields. Ignored by the composer; preserved on read for tooling that needs an audit-tail metadata bag.

content_hashstring

Response-only: content hash of the composed card (sha256:<hex>), injected by the GET/PUT response. Server-assigned — do not send on a PUT.

versioninteger

Response-only: monotonic card version, injected by the GET/PUT response. Server-assigned — do not send on a PUT.

Response

Composed canonical card after the write.

card_versionstring required
content_versionstring

Optional. Which default content the card carries, e.g. mnemom-agent-default/2.1.0 (semver within a lineage). Distinct from card_version, the schema version. New agents are born with it; composition carries the agent card's value onto the canonical card.

card_idstring
agent_idstring required
issued_atstring date-time
expires_atstring date-time nullable
mode'off' | 'observe' | 'nudge' | 'enforce' required

Strictest-wins composition: enforce > nudge > observe > off.

extensionsobject

Free-form extension slot for non-canonical fields. Ignored by the composer; preserved on read for tooling that needs an audit-tail metadata bag.

content_hashstring

Response-only: content hash of the composed card (sha256:<hex>), injected by the GET/PUT response. Server-assigned — do not send on a PUT.

versioninteger

Response-only: monotonic card version, injected by the GET/PUT response. Server-assigned — do not send on a PUT.

Changes

No recorded changes to this operation across all 1 revision of this API.