# The frozen REST wire, read out of api/openapi.yaml by
# cmd/ochakai/frozenwire_test.go. Generated — do not edit by hand:
#
#	go test ./cmd/ochakai -run TestFrozenWireHasNotMoved -update
#
# One line per thing a client can observe, for the operations the freeze
# holds still: the OKF core — the bundle round trip and the search beside
# it (design doc 0107, narrowing the freeze design doc 0064 announced).
# The rest of /api/v1 is 0.x-unstable the way MCP and the CLI are
# (docs/compatibility.md) and is deliberately not in this file. Prose
# (description, summary, example, examples) is left out on purpose:
# documentation stays free to improve after the freeze. Moving any line
# below is a change to the frozen core, and the only reasons left are a
# security defect (0064 §11) and OKF conformance (design docs 0100, 0102)
# — except for two additions the freeze was never holding still: a property
# added under components/schemas for a schema no requestBody reaches
# (design doc 0082), and an optional query parameter added to an operation
# (design doc 0101).

DELETE /api/v1/bundle/{path}
DELETE /api/v1/bundle/{path} header If-Match ref=IfMatch
DELETE /api/v1/bundle/{path} header Ochakai-On-Behalf-Of ref=OnBehalfOf
DELETE /api/v1/bundle/{path} header Ochakai-Producer ref=Producer
DELETE /api/v1/bundle/{path} operationId=deleteBundlePath
DELETE /api/v1/bundle/{path} path path required=true type=string
DELETE /api/v1/bundle/{path} query note required=false type=string maxLength=2000
DELETE /api/v1/bundle/{path} query purge required=false type=boolean default=false
DELETE /api/v1/bundle/{path} response 204
DELETE /api/v1/bundle/{path} response 204 header Ochakai-Read-Only ref=ReadOnly
DELETE /api/v1/bundle/{path} response 400 ref=Error
DELETE /api/v1/bundle/{path} response 401 ref=Unauthorized
DELETE /api/v1/bundle/{path} response 403 ref=Forbidden
DELETE /api/v1/bundle/{path} response 404
DELETE /api/v1/bundle/{path} response 404 content application/json type=object
DELETE /api/v1/bundle/{path} response 404 content application/json.code required=true type=string enum=["not_found"]
DELETE /api/v1/bundle/{path} response 404 content application/json.error required=true type=string
DELETE /api/v1/bundle/{path} response 404 header Ochakai-Read-Only ref=ReadOnly
DELETE /api/v1/bundle/{path} response 405 ref=Error
DELETE /api/v1/bundle/{path} response 409
DELETE /api/v1/bundle/{path} response 409 content application/json type=object
DELETE /api/v1/bundle/{path} response 409 content application/json.code required=true type=string enum=["invalid" "not_deleted"]
DELETE /api/v1/bundle/{path} response 409 content application/json.error required=true type=string
DELETE /api/v1/bundle/{path} response 409 header Ochakai-Read-Only ref=ReadOnly
DELETE /api/v1/bundle/{path} response 412
DELETE /api/v1/bundle/{path} response 412 content application/json type=object
DELETE /api/v1/bundle/{path} response 412 content application/json.code required=true type=string enum=["precondition_failed"]
DELETE /api/v1/bundle/{path} response 412 content application/json.error required=true type=string
DELETE /api/v1/bundle/{path} response 412 header Ochakai-Read-Only ref=ReadOnly
DELETE /api/v1/bundle/{path} response 500 ref=Error
GET /api/v1/bundle/{path}
GET /api/v1/bundle/{path} header If-None-Match ref=IfNoneMatch
GET /api/v1/bundle/{path} operationId=getBundlePath
GET /api/v1/bundle/{path} path path required=true type=string
GET /api/v1/bundle/{path} query cursor required=false type=string
GET /api/v1/bundle/{path} query files required=false type=boolean default=true
GET /api/v1/bundle/{path} query history required=false type=string
GET /api/v1/bundle/{path} query limit required=false type=integer
GET /api/v1/bundle/{path} response 200
GET /api/v1/bundle/{path} response 200 content */* type=string format="binary"
GET /api/v1/bundle/{path} response 200 content application/gzip type=string format="binary"
GET /api/v1/bundle/{path} response 200 content application/json
GET /api/v1/bundle/{path} response 200 content application/json/anyOf/0 ref=View
GET /api/v1/bundle/{path} response 200 content application/json/anyOf/1 ref=BundleListing
GET /api/v1/bundle/{path} response 200 content application/json/anyOf/2 ref=BundleLog
GET /api/v1/bundle/{path} response 200 content application/json/anyOf/3 ref=ObjectHistory
GET /api/v1/bundle/{path} response 200 content application/json/anyOf/4 ref=File
GET /api/v1/bundle/{path} response 200 content text/markdown type=string
GET /api/v1/bundle/{path} response 200 header Cache-Control ref=CacheControl
GET /api/v1/bundle/{path} response 200 header Content-Disposition
GET /api/v1/bundle/{path} response 200 header Content-Security-Policy ref=Sandbox
GET /api/v1/bundle/{path} response 200 header ETag ref=ETag
GET /api/v1/bundle/{path} response 200 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/bundle/{path} response 200 header X-Content-Type-Options ref=NoSniff
GET /api/v1/bundle/{path} response 304
GET /api/v1/bundle/{path} response 304 header Cache-Control ref=CacheControl
GET /api/v1/bundle/{path} response 304 header ETag ref=ETag
GET /api/v1/bundle/{path} response 304 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/bundle/{path} response 400 ref=Error
GET /api/v1/bundle/{path} response 401 ref=Unauthorized
GET /api/v1/bundle/{path} response 403 ref=Forbidden
GET /api/v1/bundle/{path} response 404
GET /api/v1/bundle/{path} response 404 content application/json type=object
GET /api/v1/bundle/{path} response 404 content application/json.code required=true type=string enum=["not_found"]
GET /api/v1/bundle/{path} response 404 content application/json.error required=true type=string
GET /api/v1/bundle/{path} response 404 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/bundle/{path} response 405 ref=Error
GET /api/v1/bundle/{path} response 409
GET /api/v1/bundle/{path} response 409 content application/json type=object
GET /api/v1/bundle/{path} response 409 content application/json.code required=true type=string enum=["invalid"]
GET /api/v1/bundle/{path} response 409 content application/json.error required=true type=string
GET /api/v1/bundle/{path} response 409 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/bundle/{path} response 500 ref=Error
GET /api/v1/bundle/{path} response 501
GET /api/v1/bundle/{path} response 501 content application/json type=object
GET /api/v1/bundle/{path} response 501 content application/json.code required=true type=string enum=["unsupported"]
GET /api/v1/bundle/{path} response 501 content application/json.error required=true type=string
GET /api/v1/bundle/{path} response 501 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/search
GET /api/v1/search operationId=searchConcepts
GET /api/v1/search query created_by required=false type=array
GET /api/v1/search query created_by[] type=string
GET /api/v1/search query cursor required=false type=string
GET /api/v1/search query fm.{key} required=false type=string
GET /api/v1/search query limit required=false type=integer
GET /api/v1/search query links_to required=false type=string
GET /api/v1/search query prefix required=false type=array
GET /api/v1/search query prefix[] type=string
GET /api/v1/search query q required=false type=string
GET /api/v1/search query sort required=false type=string enum=["verified_at" "usage" "failed" "stale_after"]
GET /api/v1/search query source required=false type=string
GET /api/v1/search query status required=false type=array
GET /api/v1/search query status[] ref=Status
GET /api/v1/search query tag required=false type=array
GET /api/v1/search query tag[] type=string
GET /api/v1/search query trust required=false type=array
GET /api/v1/search query trust[] ref=Trust
GET /api/v1/search query type required=false type=array
GET /api/v1/search query type[] ref=Type
GET /api/v1/search response 200
GET /api/v1/search response 200 content application/json type=object
GET /api/v1/search response 200 content application/json.cursor required=false type=string
GET /api/v1/search response 200 content application/json.degraded required=false type=boolean enum=["true"]
GET /api/v1/search response 200 content application/json.hits required=true type=array
GET /api/v1/search response 200 content application/json.hits[] ref=SearchHit
GET /api/v1/search response 200 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/search response 400
GET /api/v1/search response 400 content application/json type=object
GET /api/v1/search response 400 content application/json.code required=true type=string enum=["invalid"]
GET /api/v1/search response 400 content application/json.error required=true type=string
GET /api/v1/search response 400 header Ochakai-Read-Only ref=ReadOnly
GET /api/v1/search response 401 ref=Unauthorized
GET /api/v1/search response 403 ref=Forbidden
GET /api/v1/search response 405 ref=Error
GET /api/v1/search response 500 ref=Error
PUT /api/v1/bundle/{path}
PUT /api/v1/bundle/{path} body application/octet-stream required=true type=string format="binary"
PUT /api/v1/bundle/{path} body text/markdown required=true type=string
PUT /api/v1/bundle/{path} header If-Match ref=IfMatch
PUT /api/v1/bundle/{path} header If-None-Match ref=IfNoneMatch
PUT /api/v1/bundle/{path} header Ochakai-On-Behalf-Of ref=OnBehalfOf
PUT /api/v1/bundle/{path} header Ochakai-Producer ref=Producer
PUT /api/v1/bundle/{path} operationId=putBundlePath
PUT /api/v1/bundle/{path} path path required=true type=string
PUT /api/v1/bundle/{path} query dry_run required=false type=boolean default=false
PUT /api/v1/bundle/{path} response 200
PUT /api/v1/bundle/{path} response 200 content application/json
PUT /api/v1/bundle/{path} response 200 content application/json/anyOf/0 ref=View
PUT /api/v1/bundle/{path} response 200 content application/json/anyOf/1 ref=File
PUT /api/v1/bundle/{path} response 200 content text/markdown type=string
PUT /api/v1/bundle/{path} response 200 header ETag ref=ETag
PUT /api/v1/bundle/{path} response 200 header Ochakai-Note ref=Note
PUT /api/v1/bundle/{path} response 200 header Ochakai-Plan ref=Plan
PUT /api/v1/bundle/{path} response 200 header Ochakai-Read-Only ref=ReadOnly
PUT /api/v1/bundle/{path} response 200 header Ochakai-Unchanged
PUT /api/v1/bundle/{path} response 201
PUT /api/v1/bundle/{path} response 201 content application/json
PUT /api/v1/bundle/{path} response 201 content application/json/anyOf/0 ref=View
PUT /api/v1/bundle/{path} response 201 content application/json/anyOf/1 ref=File
PUT /api/v1/bundle/{path} response 201 content text/markdown type=string
PUT /api/v1/bundle/{path} response 201 header ETag ref=ETag
PUT /api/v1/bundle/{path} response 201 header Ochakai-Note ref=Note
PUT /api/v1/bundle/{path} response 201 header Ochakai-Read-Only ref=ReadOnly
PUT /api/v1/bundle/{path} response 400 ref=Error
PUT /api/v1/bundle/{path} response 401 ref=Unauthorized
PUT /api/v1/bundle/{path} response 403 ref=Forbidden
PUT /api/v1/bundle/{path} response 404
PUT /api/v1/bundle/{path} response 404 content application/json type=object
PUT /api/v1/bundle/{path} response 404 content application/json.code required=true type=string enum=["not_found"]
PUT /api/v1/bundle/{path} response 404 content application/json.error required=true type=string
PUT /api/v1/bundle/{path} response 404 header Ochakai-Read-Only ref=ReadOnly
PUT /api/v1/bundle/{path} response 405 ref=Error
PUT /api/v1/bundle/{path} response 409
PUT /api/v1/bundle/{path} response 409 content application/json type=object
PUT /api/v1/bundle/{path} response 409 content application/json.code required=true type=string enum=["already_exists" "invalid"]
PUT /api/v1/bundle/{path} response 409 content application/json.error required=true type=string
PUT /api/v1/bundle/{path} response 409 header Ochakai-Read-Only ref=ReadOnly
PUT /api/v1/bundle/{path} response 412
PUT /api/v1/bundle/{path} response 412 content application/json type=object
PUT /api/v1/bundle/{path} response 412 content application/json.code required=true type=string enum=["already_exists" "precondition_failed"]
PUT /api/v1/bundle/{path} response 412 content application/json.error required=true type=string
PUT /api/v1/bundle/{path} response 412 header Ochakai-Read-Only ref=ReadOnly
PUT /api/v1/bundle/{path} response 413 ref=Error
PUT /api/v1/bundle/{path} response 415 ref=Error
PUT /api/v1/bundle/{path} response 500 ref=Error
PUT /api/v1/bundle/{path} response 501 ref=Error
components/headers/CacheControl
components/headers/CacheControl schema type=string
components/headers/ETag
components/headers/ETag schema type=string
components/headers/NoSniff
components/headers/NoSniff schema type=string enum=["nosniff"]
components/headers/Note
components/headers/Note schema type=string
components/headers/Plan
components/headers/Plan schema type=string enum=["created" "updated" "unchanged"]
components/headers/ReadOnly
components/headers/ReadOnly schema type=string enum=["true"]
components/headers/Sandbox
components/headers/Sandbox schema type=string enum=["sandbox"]
components/parameters/IfMatch name=If-Match in=header required=false
components/parameters/IfMatch schema type=string
components/parameters/IfNoneMatch name=If-None-Match in=header required=false
components/parameters/IfNoneMatch schema type=string
components/parameters/OnBehalfOf name=Ochakai-On-Behalf-Of in=header required=false
components/parameters/OnBehalfOf schema type=string maxLength=320
components/parameters/Producer name=Ochakai-Producer in=header required=false
components/parameters/Producer schema type=string maxLength=128
components/responses/Error
components/responses/Error content application/json type=object
components/responses/Error content application/json.code required=true type=string enum=["already_exists" "forbidden" "internal" "invalid" "method_not_allowed" "not_deleted" "not_found" "precondition_failed" "read_only" "too_large" "unsupported"]
components/responses/Error content application/json.error required=true type=string
components/responses/Error header Ochakai-Read-Only ref=ReadOnly
components/responses/Forbidden
components/responses/Forbidden content application/json type=object
components/responses/Forbidden content application/json.code required=true type=string enum=["forbidden" "read_only"]
components/responses/Forbidden content application/json.error required=true type=string
components/responses/Forbidden header Ochakai-Read-Only ref=ReadOnly
components/responses/Unauthorized
components/responses/Unauthorized content application/json type=object
components/responses/Unauthorized content application/json.code required=true type=string enum=["invalid"]
components/responses/Unauthorized content application/json.error required=true type=string
components/schemas/Actor type=object
components/schemas/Actor.kind required=true type=string enum=["human" "process"]
components/schemas/Actor.name required=true type=string
components/schemas/Actor.producer required=false type=string
components/schemas/Actor.via required=false type=string
components/schemas/Backlink type=object
components/schemas/Backlink.description required=false type=string
components/schemas/Backlink.id required=true type=string
components/schemas/Backlink.status required=true ref=Status
components/schemas/Backlink.title required=false type=string
components/schemas/Backlink.trust required=true ref=Trust
components/schemas/Backlink.type required=true ref=Type
components/schemas/BundleListing type=object
components/schemas/BundleListing.concepts required=false type=array
components/schemas/BundleListing.concepts[] type=object
components/schemas/BundleListing.concepts[].description required=false type=string
components/schemas/BundleListing.concepts[].id required=true type=string
components/schemas/BundleListing.concepts[].status required=true ref=Status
components/schemas/BundleListing.concepts[].title required=false type=string
components/schemas/BundleListing.concepts[].type required=true ref=Type
components/schemas/BundleListing.concepts[].updated_at required=true type=string format="date-time"
components/schemas/BundleListing.cursor required=false type=string
components/schemas/BundleListing.dirs required=false type=array
components/schemas/BundleListing.dirs[] type=object
components/schemas/BundleListing.dirs[].count required=true type=integer
components/schemas/BundleListing.dirs[].description required=false type=string
components/schemas/BundleListing.dirs[].name required=true type=string
components/schemas/BundleListing.files required=false type=array
components/schemas/BundleListing.files[] type=object
components/schemas/BundleListing.files[].created_at required=true type=string format="date-time"
components/schemas/BundleListing.files[].media_type required=true type=string
components/schemas/BundleListing.files[].name required=true type=string
components/schemas/BundleListing.files[].path required=true type=string
components/schemas/BundleListing.files[].size required=true type=integer
components/schemas/BundleListing.truncated required=false type=boolean
components/schemas/BundleLog type=object
components/schemas/BundleLog.changes required=true type=array
components/schemas/BundleLog.changes[] ref=Change
components/schemas/Change type=object
components/schemas/Change.change required=true type=string
components/schemas/Change.changed_at required=true type=string format="date-time"
components/schemas/Change.changed_by required=true ref=Actor
components/schemas/Change.note required=false type=string
components/schemas/Change.path required=true type=string
components/schemas/Change.title required=false type=string
components/schemas/File type=object
components/schemas/File.created_at required=true type=string format="date-time" readOnly=true
components/schemas/File.created_by required=true ref=Actor
components/schemas/File.media_type required=true type=string
components/schemas/File.name required=true type=string
components/schemas/File.path required=true type=string
components/schemas/File.sha256 required=true type=string
components/schemas/File.size required=true type=integer
components/schemas/Generated type=object
components/schemas/Generated.at required=true type=string format="date-time"
components/schemas/Generated.by required=true ref=Actor
components/schemas/Link type=object
components/schemas/Link.target required=true type=string
components/schemas/Link.text required=false type=string
components/schemas/ObjectHistory type=object
components/schemas/ObjectHistory.revisions required=true type=array
components/schemas/ObjectHistory.revisions[] ref=Revision
components/schemas/Observed type=object
components/schemas/Observed.created_by required=true ref=Actor
components/schemas/Observed.generated required=true ref=Generated
components/schemas/Observed.verified required=false type=array
components/schemas/Observed.verified[] ref=Verification
components/schemas/Revision type=object
components/schemas/Revision.change required=true type=string
components/schemas/Revision.changed_at required=true type=string format="date-time"
components/schemas/Revision.changed_by required=true ref=Actor
components/schemas/Revision.document required=true type=string
components/schemas/Revision.note required=false type=string
components/schemas/Revision.rev required=true type=integer
components/schemas/SearchHit
components/schemas/SearchHit/allOf/0 ref=Summary
components/schemas/SearchHit/allOf/1 type=object
components/schemas/SearchHit/allOf/1.files required=false type=array readOnly=true
components/schemas/SearchHit/allOf/1.files[] ref=File
components/schemas/SearchHit/allOf/1.score required=true type=number
components/schemas/SearchHit/allOf/1.snippet required=false type=string
components/schemas/SearchHit/allOf/1.usage required=false readOnly=true
components/schemas/SearchHit/allOf/1.usage/allOf/0 ref=Usage
components/schemas/Status type=string enum=["draft" "stable" "deprecated"]
components/schemas/Summary type=object
components/schemas/Summary.content_hash required=true type=string
components/schemas/Summary.created_at required=true type=string format="date-time"
components/schemas/Summary.description required=false type=string
components/schemas/Summary.id required=true type=string pattern="^[^./][^/]{0,127}(/[^./][^/]{0,127})*$"
components/schemas/Summary.links required=false type=array
components/schemas/Summary.links[] ref=Link
components/schemas/Summary.resource required=false type=string
components/schemas/Summary.stale_after required=false type=string
components/schemas/Summary.status required=true ref=Status
components/schemas/Summary.tags required=false type=array
components/schemas/Summary.tags[] type=string
components/schemas/Summary.title required=false type=string
components/schemas/Summary.trust required=true
components/schemas/Summary.trust/allOf/0 ref=Trust
components/schemas/Summary.type required=true ref=Type
components/schemas/Summary.updated_at required=true type=string format="date-time"
components/schemas/Summary.verified_at required=false type=string format="date-time"
components/schemas/Trust type=string enum=["unverified" "machine-confirmed" "human-reviewed"]
components/schemas/Type type=string pattern="^[^\\r\\n]{1,128}$"
components/schemas/Usage type=object
components/schemas/Usage.failed required=true type=integer
components/schemas/Usage.fetches required=true type=integer
components/schemas/Usage.last_used_at required=false type=string format="date-time"
components/schemas/Usage.recent required=true type=object
components/schemas/Usage.recent.days required=true type=integer
components/schemas/Usage.recent.failed required=true type=integer
components/schemas/Usage.recent.fetches required=true type=integer
components/schemas/Usage.reports required=false type=array
components/schemas/Usage.reports[] type=object
components/schemas/Usage.reports[].at required=true type=string format="date-time"
components/schemas/Usage.reports[].by required=true
components/schemas/Usage.reports[].by/allOf/0 ref=Actor
components/schemas/Usage.reports[].note required=true type=string
components/schemas/Usage.reports[].outcome required=true type=string enum=["worked" "failed"]
components/schemas/Usage.search_hits required=true type=integer
components/schemas/Usage.worked required=true type=integer
components/schemas/Verification type=object
components/schemas/Verification.at required=true type=string format="date-time"
components/schemas/Verification.by required=true ref=Actor
components/schemas/View type=object
components/schemas/View.document required=true type=string
components/schemas/View.files required=false type=array
components/schemas/View.files[] ref=File
components/schemas/View.id required=true type=string
components/schemas/View.linked_from required=false type=array
components/schemas/View.linked_from[] ref=Backlink
components/schemas/View.notes required=false type=array
components/schemas/View.notes[] type=string
components/schemas/View.observed required=true ref=Observed
components/schemas/View.plan required=false type=string enum=["created" "updated" "unchanged"]
components/schemas/View.summary required=true ref=Summary
components/securitySchemes/GoogleIDToken type=http scheme=bearer format=JWT
security (anonymous)
security GoogleIDToken
