---
schema: formation.doc/v0.1
kind: doc
visibility: public
canonical_url: https://topologyindex.com/docs/schemas/subscription/v0.1.md
document_kind: subscription
document_schema: formation.subscription/v0.1
max_document_bytes: 262144
path: /docs/schemas/subscription/v0.1.md
product_api_version: v1
schema_version: v0.1
title: formation.subscription/v0.1
---

# formation.subscription/v0.1

Frontmatter fields of a `subscription` document. Every security-, cost- and execution-relevant
value is a typed field; prose in the body can explain a rule but never override it. Undeclared
fields are rejected.

## Fields

- `schema` (required): exactly `formation.subscription/v0.1`
- `kind` (required): exactly `subscription`
- `created_at` (optional): ISO 8601 UTC timestamp, pattern `^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?Z$`, at most 30 characters
- `visibility` (optional): one of `private`, `public`
- `workload_profile` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `watched_execution_locks` (required): array of 1 to 32 items, each sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `permitted_triggers` (required): array of 1 to 6 items, each one of `execution_lock_changed`, `model_binding_registered`, `evidence_stale`, `reliability_drift`, `cost_drift`, `compatible_candidate_submitted`
- `event_cadence` (required): one of `immediate`, `daily`, `weekly`
- `minimum_evaluation_interval_seconds` (required): integer from 3600 to 32140800
- `candidate_scope` (required): one of `watched_locks_only`, `tenant_private_candidates`, `tenant_and_public_candidates`
- `automatic_start` (required): map (fields listed below)
- `automatic_start.enabled` (required): boolean
- `automatic_start.spending_policy_version` (required): null or integer from 0 to 1000000000
- `automatic_start.monthly_allowance_usd_micros` (required): integer from 0 to 1000000000000000
- `automatic_start.per_evaluation_cap_usd_micros` (required): integer from 0 to 1000000000000000
- `automatic_start.max_concurrent_evaluations` (required): integer from 0 to 64
