{
  "openapi": "3.1.0",
  "info": {"title": "Security Intelligence public contract downloads", "version": "1.0.0", "description": "Contract download endpoints only; not a complete public read API specification. API version 1.0 is independent of bundle and feed record versions."},
  "paths": {
    "/api/v1/public/contracts/{version}": {"get": {"operationId": "publicContractBundle", "parameters": [{"name": "version", "in": "path", "required": true, "schema": {"type": "string", "enum": ["current", "1.0.0"]}}], "responses": {"200": {"description": "Manifest listing exact-byte artifact SHA-256, sizes and version-pinned download paths", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Bundle"}}}}, "404": {"description": "Unsupported bundle version"}, "429": {"description": "Public read limit reached"}}}},
    "/api/v1/public/contracts/{version}/{artifact}": {"get": {"operationId": "publicContractArtifact", "parameters": [{"name": "version", "in": "path", "required": true, "schema": {"type": "string", "enum": ["current", "1.0.0"]}}, {"name": "artifact", "in": "path", "required": true, "schema": {"type": "string", "enum": ["public-contracts.openapi.json", "issue-page.schema.json", "feed-manifest.schema.json", "feed-record.schema.json", "feed-record-v1.1.schema.json", "feed-record-v1.2.schema.json", "feed-recovery.schema.json"]}}], "responses": {"200": {"description": "Unmodified UTF-8 JSON artifact; X-SI-Contract-SHA256 hashes the returned bytes", "headers": {"X-SI-Contract-SHA256": {"schema": {"type": "string", "pattern": "^[a-f0-9]{64}$"}}, "X-SI-Contract-Bundle-Version": {"schema": {"const": "1.0.0"}}}, "content": {"application/json": {"schema": {"type": "object"}}}}, "404": {"description": "Unsupported bundle version or artifact"}, "429": {"description": "Public read limit reached"}}}}
  },
  "components": {"schemas": {
    "Artifact": {"type": "object", "additionalProperties": false, "required": ["name", "schema_id", "schema_aliases", "contract_version", "scope", "media_type", "sha256", "bytes", "download_path"], "properties": {"name": {"type": "string"}, "schema_id": {"type": "string"}, "schema_aliases": {"type": "array", "items": {"type": "string"}}, "contract_version": {"type": "string"}, "scope": {"enum": ["public_contract_downloads", "public_feed_cache", "public_signed_feed"]}, "media_type": {"const": "application/json"}, "sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"}, "bytes": {"type": "integer", "minimum": 1}, "download_path": {"type": "string"}}},
    "Bundle": {"type": "object", "additionalProperties": false, "required": ["bundle_version", "api_version", "feed_record_versions", "artifacts"], "properties": {"bundle_version": {"const": "1.0.0"}, "api_version": {"const": "1.0"}, "feed_record_versions": {"const": ["1.0", "1.1", "1.2"]}, "artifacts": {"type": "array", "items": {"$ref": "#/components/schemas/Artifact"}}}}
  }}
}
