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

# formation.job_status/v0.1

Frontmatter fields of a `job_status` 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.job_status/v0.1`
- `kind` (required): exactly `job_status`
- `job_id` (required): resource identifier, pattern `^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$`, at most 128 characters
- `state` (required): one of `accepted`, `waiting_for_runner`, `running`, `analyzing`, `completed`, `failed`, `cancelling`, `cancelled`, `expired`
- `coordinator_sequence` (required): integer from 0 to 9007199254740991
- `plan_digest` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `status_path` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `next_action` (required): map (fields listed below)
- `next_action.type` (required): one of `none`, `read_document`, `fix_request`, `retry_later`, `request_evaluation_plan`, `start_evaluation`, `start_registered_runner`, `poll_status`, `fetch_evidence`, `fetch_decision`, `request_owner_approval`
- `next_action.path` (optional): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `next_action.starts_work` (optional): boolean
- `updated_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
- `cancellation_epoch` (optional): integer from 0 to 1000000000
- `attempts` (optional): map (fields listed below)
- `attempts.reserved` (required): integer from 0 to 1000000000
- `attempts.leased` (required): integer from 0 to 1000000000
- `attempts.running` (required): integer from 0 to 1000000000
- `attempts.reported` (required): integer from 0 to 1000000000
- `attempts.settled` (required): integer from 0 to 1000000000
- `attempts.lost_or_unknown` (required): integer from 0 to 1000000000
- `attempts.settled_or_written_off` (required): integer from 0 to 1000000000
- `budget` (optional): map (fields listed below)
- `budget.reserved_usd_micros` (required): integer from 0 to 1000000000000000
- `budget.settled_usd_micros` (required): integer from 0 to 1000000000000000
- `budget.outstanding_liability_usd_micros` (required): integer from 0 to 1000000000000000
- `evidence_digest` (optional): null or sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `decision_digest` (optional): null or sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
