{"openapi":"3.1.0","info":{"title":"AgentDrive","description":"AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.","version":"0.0.1"},"servers":[{"url":"https://drive.tokencanopy.com","description":"This deployment"},{"url":"http://127.0.0.1:8000","description":"Local dev"}],"paths":{"/s/{share_key}":{"get":{"tags":["shares-redemption"],"summary":"Redeem Share","description":"The un-slashed form. Browsers are canonicalized onto `/s/{key}/`.\n\nThis keeps the published `shares_redeem` operation id because it remains\nthe same redemption operation: same URL, JSON `Accept`, byte/JSON result,\nand uniform 404. In a split deployment the share host authorizes a\nspecific non-HTML request and then 308s it to this same path on the\nconfigured public renderer; the renderer (or direct-renderer rollback)\nreturns the existing result. Dropping the route from the spec would have\ndescribed a live operation as gone.\n\nThe page links its own sub-resources relatively (`content`), and relative\nresolution replaces the last path segment: from `/s/KEY` that reaches\n`/s/content`, from `/s/KEY/` it reaches `/s/KEY/content`. The trailing\nslash is what makes an image on a share page load at all. Links already in\nthe wild have no slash, so this redirect is how they keep working.\n\nIt is unconditional and runs before any lookup — redirecting only for keys\nthat resolve would turn the status code into an existence oracle and undo\nthe anti-enumeration property the rest of this module maintains.\n\nHTML navigation is canonicalized to the trailing-slash form. Non-HTML\nclients are answered in place by the renderer/direct rollback, or moved\nto the renderer only after the credential resolves on the share host.","operationId":"shares_redeem","parameters":[{"name":"share_key","in":"path","required":true,"schema":{"type":"string","title":"Share Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}}}},"/v0/drives":{"get":{"tags":["drives"],"summary":"List Drives","description":"List the actor's workspace drives, newest-first (keyset paginated).\n\n``lifecycle`` (active|deleted|all) exposes soft-deleted drives so a\nmanager can read the post-delete revision as the If-Match source for a\nrestore. Unknown query parameters are rejected (§6.3).","operationId":"drives_list","parameters":[{"name":"lifecycle","in":"query","required":false,"schema":{"type":"string","default":"active","title":"Lifecycle"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:read"]},"post":{"tags":["drives"],"summary":"Create Drive","description":"Create a drive with its structural root folder and creator-manager\ngrant(s) in one transaction; idempotent under the ``Idempotency-Key``.","operationId":"drives_create","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:write"]}},"/v0/drives/{drive_id}":{"get":{"tags":["drives"],"summary":"Read Drive","description":"Read one active drive. ETag = quoted revision; matching\n``If-None-Match`` → 304. Deleted and cross-workspace drives are 404.","operationId":"drives_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:read"]},"patch":{"tags":["drives"],"summary":"Update Drive","description":"Rename / update a drive's metadata. Requires ``Idempotency-Key`` and\n``If-Match`` (428 absent, 412 stale); bumps the revision.","operationId":"drives_update","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:write"]},"delete":{"tags":["drives"],"summary":"Delete Drive","description":"Soft-delete a drive. Returns 200 with the deleted representation so the\nclient has the post-delete revision/ETag for a restore.","operationId":"drives_delete","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:write"]}},"/v0/drives/{drive_id}/restore":{"post":{"tags":["drives"],"summary":"Restore Drive","description":"Restore a soft-deleted drive. If-Match must carry the post-delete\nrevision; restoring an already-active drive is 409 CONFLICT.","operationId":"drives_restore","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["drives:write"]}},"/v0/drives/{drive_id}/usage":{"get":{"tags":["drives"],"summary":"Drive Usage","description":"Byte counters for one active drive: storage is the live sum of its\nversions' sizes; retrieval reads the counter the content-read slice\nmaintains (0 until it lands).","operationId":"drives_usage","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveUsageOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["usage:read"]}},"/v0/drives/{drive_id}/folders":{"get":{"tags":["folders"],"summary":"List Folders","description":"List the drive's folders, newest-first (keyset paginated).\n\n``lifecycle`` (active|deleted|all) exposes soft-deleted folders so the\npost-delete revision can be read as the If-Match source for a restore.\n``parent_id`` / ``name`` are exact-match filters. Unknown query parameters\nare rejected (§6.3).","operationId":"folders_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"lifecycle","in":"query","required":false,"schema":{"type":"string","default":"active","title":"Lifecycle"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]},"post":{"tags":["folders"],"summary":"Create Folder","description":"Create one folder under `parent_id`; idempotent under the\n``Idempotency-Key``.","operationId":"folders_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/folders/{folder_id}":{"get":{"tags":["folders"],"summary":"Read Folder","description":"Read one active folder. ETag = quoted revision; matching\n``If-None-Match`` → 304. Deleted and cross-workspace folders are 404.","operationId":"folders_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]},"patch":{"tags":["folders"],"summary":"Update Folder","description":"Rename / move / update a folder's metadata. Requires\n``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the\nrevision.","operationId":"folders_update","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]},"delete":{"tags":["folders"],"summary":"Delete Folder","description":"Soft-delete a folder and its full live subtree (folders + artifacts) in\none transaction. A non-empty subtree requires ``recursive=true`` (409\nFOLDER_RECURSIVE_REQUIRED otherwise). Returns the deleted root\nrepresentation plus exact cascade counts and the post-delete\nrevision/ETag for a restore.","operationId":"folders_delete","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"recursive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Recursive"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCascadeOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/folders/{folder_id}/restore":{"post":{"tags":["folders"],"summary":"Restore Folder","description":"Restore a soft-deleted folder and its deleted subtree atomically.\nIf-Match must carry the post-delete revision; restoring an already-active\nfolder is 409 CONFLICT.","operationId":"folders_restore","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCascadeOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/folders/{folder_id}/copy":{"post":{"tags":["folders"],"summary":"Copy Folder","description":"Copy a folder's subtree within the same drive.\n\nCross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).\n``destination_drive_id`` must equal the source drive when present.\nMaterializes the subtree synchronously → 201 + the copied folder.\nThe source root, descendant folders, and artifacts may total at most\n5,000 live resources; larger copies fail with 409 SUBTREE_TOO_LARGE.\n``If-Match`` is optional; when present it is validated against the source\nrevision (412 stale).","operationId":"folders_copy","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCopyIn"}}}},"responses":{"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read","content:write"]}},"/v0/drives/{drive_id}/grants":{"get":{"tags":["grants"],"summary":"List Grants","description":"List explicit grants in the drive, keyset paginated.\n\n**What you see depends on your role (contract change).** A caller holding\n``manager`` on the drive lists EVERY grant in it. Any other caller lists\nonly the grants that name them — their own agent/user rows, ``workspace``\ngrants covering them, and ``public`` grants (which already expose the\nresource to them anyway). Previously any drive ``viewer`` could page out\nevery principal id, role and expiry in the drive; that was an\naccess-graph disclosure, not a feature.\n\nThe operation is refused (404) only for a caller holding no live grant\nanywhere in the drive — never for lack of ``manager``, because seeing\nyour own access is not a privilege. That admits folder-scoped\nprincipals, who previously 404'd here despite having access to show. A\nfolder ``manager`` still sees only their own rows, not the roster of the\nsubtree they administer; scoping the listing by per-resource\nadministration authority is a follow-up this change does not claim.\n\n``resource_id`` filters to one resource's grants and REQUIRES\n``resource_type`` alongside it — a bare resource id is ambiguous across\nthe three resource kinds, and guessing the kind from the id prefix would\nmake the filter's meaning depend on an id format the contract does not\npromise to keep. ``resource_type`` on its own remains a valid (and\npre-existing) filter.","operationId":"grants_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"lifecycle","in":"query","required":false,"schema":{"type":"string","default":"active","title":"Lifecycle"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"}},{"name":"resource_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"}},{"name":"principal_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Principal Type"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:read"]},"post":{"tags":["grants"],"summary":"Create Grant","description":"Grant one principal a role on a drive, folder, or artifact.","operationId":"grants_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]}},"/v0/drives/{drive_id}/grants/{grant_id}":{"get":{"tags":["grants"],"summary":"Read Grant","description":"Read one grant in the drive.","operationId":"grants_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:read"]},"patch":{"tags":["grants"],"summary":"Update Grant","description":"Change a grant's role or expiry under If-Match.","operationId":"grants_update","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]},"delete":{"tags":["grants"],"summary":"Revoke Grant","description":"Revoke a grant (soft, sets revoked_at) under If-Match.","operationId":"grants_revoke","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]}},"/v0/drives/{drive_id}/shares":{"get":{"tags":["shares"],"summary":"List Shares","description":"List the drive's shares (no secrets), keyset paginated.\n\n``resource_id`` narrows the page to one resource's links and REQUIRES\n``resource_type`` alongside it — a bare resource id is ambiguous across\n``artifact`` / ``artifact_version`` / ``folder``, and inferring the kind\nfrom the id prefix would tie the filter's meaning to an id format the\ncontract does not promise to keep. ``resource_type`` alone is a valid\nfilter. Listing shares already requires drive ``manager``, so these\nfilters only narrow a page the caller could already read in full.","operationId":"shares_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"lifecycle","in":"query","required":false,"schema":{"type":"string","default":"active","title":"Lifecycle"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"}},{"name":"resource_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:read"]},"post":{"tags":["shares"],"summary":"Create Share","description":"Mint a read-only bearer link. The response carries the plaintext\nsecret — the only response that does.","operationId":"shares_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareCreateOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]}},"/v0/drives/{drive_id}/shares/{share_id}":{"get":{"tags":["shares"],"summary":"Read Share","description":"Read one share's management representation (no secret).","operationId":"shares_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:read"]},"delete":{"tags":["shares"],"summary":"Revoke Share","description":"Revoke a share (soft, sets revoked_at) under If-Match.","operationId":"shares_revoke","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]}},"/v0/drives/{drive_id}/shares/{share_id}/rotate":{"post":{"tags":["shares"],"summary":"Rotate Share","description":"Rotate the secret in place (same id, no grace window). The response\ncarries the new plaintext secret.","operationId":"shares_rotate","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareCreateOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["sharing:write"]}},"/v0/drives/{drive_id}/search":{"get":{"tags":["search"],"summary":"Drive Search","description":"Search the drive's live artifacts. ``q`` is required and must be\nnon-empty.\n\n``mode`` selects the retrieval engine: ``lexical``, ``hybrid``, or\n``semantic``. This deployment enables ``lexical`` only; requesting a\ndisabled mode fails ``400 SEARCH_MODE_UNAVAILABLE``.\n\nEach hit's ``snippet`` is HTML-safe by contract: artifact content is\nentity-escaped and only the server's own ``<mark>``/``</mark>`` highlight\npair survives, so a client may render it as HTML.","operationId":"drive_search","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"mode","in":"query","required":false,"schema":{"enum":["lexical","hybrid","semantic"],"type":"string","default":"lexical","title":"Mode"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPageOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument). Requesting a disabled search mode fails with SEARCH_MODE_UNAVAILABLE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]}},"/v0/drives/{drive_id}/artifacts":{"get":{"tags":["artifacts"],"summary":"List Artifacts","description":"List the drive's artifacts, newest-first (keyset paginated).\n\n``lifecycle`` (active|deleted|all) exposes soft-deleted artifacts.\n``parent_id`` / ``name`` / ``content_type`` / ``label`` are exact-match\nfilters; ``updated_after`` / ``updated_before`` are inclusive bounds.\nUnknown query parameters are rejected.","operationId":"artifacts_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"lifecycle","in":"query","required":false,"schema":{"type":"string","default":"active","title":"Lifecycle"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]},"post":{"tags":["artifacts"],"summary":"Create Artifact","description":"Create one artifact with inline content — multipart only.\n\nMultipart only (415 for a JSON body). Parts: parent_id, name, metadata, content (bytes), content_type, sha256. parent_id, name, and content are required.","operationId":"artifacts_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"413":{"description":"The content part exceeds the inline ceiling (ARTIFACT_TOO_LARGE). Above it, use a direct upload session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"415":{"description":"This operation requires multipart/form-data (UNSUPPORTED_MEDIA_TYPE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"parent_id":{"type":"string","description":"Destination folder id (fld_*)."},"name":{"type":"string","description":"Artifact name."},"metadata":{"type":"object","description":"Free-form JSON metadata."},"content":{"type":"string","format":"binary","description":"The artifact bytes."},"content_type":{"type":"string","description":"Declared media type."},"sha256":{"type":"string","description":"Optional content sha256 for verification."}},"required":["parent_id","name","content"]}}}},"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}":{"get":{"tags":["artifacts"],"summary":"Read Artifact","description":"Read one active artifact. ``If-None-Match`` short-circuits to 304.","operationId":"artifacts_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]},"patch":{"tags":["artifacts"],"summary":"Update Artifact","description":"Rename / move / set metadata or labels. At least one field required.","operationId":"artifacts_update","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]},"delete":{"tags":["artifacts"],"summary":"Delete Artifact","description":"Soft-delete one artifact (its versions stay).","operationId":"artifacts_delete","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/restore":{"post":{"tags":["artifacts"],"summary":"Restore Artifact","description":"Restore a soft-deleted artifact atomically.","operationId":"artifacts_restore","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/content":{"get":{"tags":["artifacts"],"summary":"Read Artifact Content","description":"Download the head version's bytes — stream or 307 signed URL.","operationId":"artifacts_content","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Raw artifact bytes (streamed).","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"307":{"description":"Redirect to a short-lived signed URL.","headers":{"Location":{"description":"Redirect target.","schema":{"type":"string","format":"uri-reference"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/copy":{"post":{"tags":["artifacts"],"summary":"Copy Artifact","description":"Copy one artifact within the same drive.\n\nCross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).\n``destination_drive_id`` must equal the source drive when present.\nMaterializes the artifact + its selected version synchronously → 201.\n``If-Match`` is optional; when present it is validated against the source\nrevision (412 stale).","operationId":"artifacts_copy","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactCopyIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read","content:write"]}},"/v0/drives/{drive_id}/changes":{"get":{"tags":["changes"],"summary":"List Changes","description":"Pull one page of changes. Exactly one of ``start`` or ``cursor``.\n\n``type`` is an optional comma-separated allow-list of exact event-type\nstrings (e.g. ``type=folder.created,artifact.updated`` for content only, or\n``type=grant.created,grant.updated,grant.revoked`` for grant events). A\ncomma-list — not a single value or a ``grant.*`` glob — because the useful\nsync queries (\"content only\", \"all permission events\") are SETS of exact\ntypes, and exact-match keeps the filter's meaning independent of the dotted\nnaming (§6.3: unknown params are rejected; unknown type VALUES 400 here).\nPermission types requested by a non-manager are silently empty (the\nmanager filter still applies), never an existence oracle.","operationId":"changes_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"enum":["now","beginning"],"type":"string"},{"type":"null"}],"title":"Start"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePageOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"410":{"description":"The change cursor is older than retained history. Recover with a full sync: capture start=now, enumerate current resources, then replay from the captured cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument). Pass exactly one of start or cursor (INVALID_REQUEST); a cursor not issued for this drive fails with INVALID_CURSOR.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["changes:read"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/versions":{"get":{"tags":["versions"],"summary":"List Versions","description":"List the artifact's version trail, newest first (ordinal DESC).","operationId":"versions_list","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionListOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]},"post":{"tags":["versions"],"summary":"Append Version","description":"Append one immutable version and rotate the artifact head.\n\nMultipart only (415 for a JSON body). Parts: content (bytes), content_type, sha256. content is required; name, parent_id, and metadata are not accepted here.","operationId":"versions_append","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionCreatedOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"413":{"description":"The content part exceeds the inline ceiling (ARTIFACT_TOO_LARGE). Above it, use a direct upload session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"415":{"description":"This operation requires multipart/form-data (UNSUPPORTED_MEDIA_TYPE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"content":{"type":"string","format":"binary","description":"The artifact bytes."},"content_type":{"type":"string","description":"Declared media type."},"sha256":{"type":"string","description":"Optional content sha256 for verification."}},"required":["content"]}}}},"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}":{"get":{"tags":["versions"],"summary":"Read Version","description":"Read one immutable version.","operationId":"versions_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content":{"get":{"tags":["versions"],"summary":"Read Version Content","description":"Download one version's immutable bytes — stream or 307.","operationId":"versions_content","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Raw artifact bytes (streamed).","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"307":{"description":"Redirect to a short-lived signed URL.","headers":{"Location":{"description":"Redirect target.","schema":{"type":"string","format":"uri-reference"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore":{"post":{"tags":["versions"],"summary":"Restore Version","description":"Restore a historical version as a NEW head version (no byte copy).","operationId":"versions_restore","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionCreatedOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"503":{"description":"Token verification is temporarily unavailable (the Hub JWKS could not be fetched). This is the API's unavailability, not a problem with the presented credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/uploads":{"post":{"tags":["uploads"],"summary":"Begin Upload","description":"Begin one direct-upload session; the 201 response carries the one\nexternal GCS XML resumable target, disclosed exactly once.\n\nStrict JSON body (charset utf-8): unknown/duplicate fields, unknown discriminators, non-canonical CRC32C, and malformed ids are 400 INVALID_REQUEST. An artifact target takes NO If-Match (400 if sent); a version target REQUIRES If-Match carrying the artifact head ETag (428 absent, 412 stale) — the revision is captured for completion-time enforcement.","operationId":"uploads_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadBeginOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"406":{"description":"Accept does not admit application/json (NOT_ACCEPTABLE) — every upload-control response is JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"Direct transfer is not fully configured/enabled (TRANSFER_DISABLED, no Retry-After), or the provider is transiently unavailable (TRANSFER_UNAVAILABLE, with Retry-After).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"413":{"description":"The declared size exceeds the enabled direct-transfer ceiling (PAYLOAD_TOO_LARGE), or the control body exceeds its bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"415":{"description":"The begin body must be application/json (UNSUPPORTED_MEDIA_TYPE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"200":{"description":"Idempotent replay (Idempotent-Replay: true): the retained non-secret session state or durable completion result. The transfer target is never reissued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["target","content"],"properties":{"target":{"description":"Exactly one destination union member.","oneOf":[{"type":"object","additionalProperties":false,"required":["kind","parent_folder_id","name"],"properties":{"kind":{"type":"string","enum":["artifact"]},"parent_folder_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$"},"name":{"type":"string","minLength":1,"maxLength":255}}},{"type":"object","additionalProperties":false,"required":["kind","artifact_id"],"properties":{"kind":{"type":"string","enum":["version"]},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$"}}}]},"content":{"type":"object","additionalProperties":false,"required":["size_bytes","media_type","checksum"],"properties":{"size_bytes":{"type":"integer","minimum":0,"description":"Declared object size in bytes, within the enabled B8-configured window."},"media_type":{"type":"string","description":"Bare IANA type/subtype, no parameters."},"checksum":{"type":"object","additionalProperties":false,"required":["algorithm","value"],"properties":{"algorithm":{"type":"string","enum":["crc32c"]},"value":{"type":"string","pattern":"^[A-Za-z0-9+/]{6}==$","description":"Canonical padded standard-base64 CRC32C of exactly four bytes (GCS metadata form)."}}}}}}}}}},"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/uploads/{upload_id}":{"get":{"tags":["uploads"],"summary":"Read Upload","description":"Non-secret recovery state (§5.3). Never a target, coordinate,\nprincipal, reservation, continuation, or provider diagnostic.\n\nIdempotency-Key is not part of this read's contract (manifest idempotency_class: not_required): a supplied key plays no role and creates no idempotency record.","operationId":"uploads_read","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"406":{"description":"Accept does not admit application/json (NOT_ACCEPTABLE) — every upload-control response is JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"Direct transfer is not fully configured/enabled (TRANSFER_DISABLED, no Retry-After), or the provider is transiently unavailable (TRANSFER_UNAVAILABLE, with Retry-After).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"304":{"description":"If-None-Match matched the current ETag.","headers":{"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]},"delete":{"tags":["uploads"],"summary":"Cancel Upload","description":"Close publication permanently and release the reservation exactly\nonce (§5.4); cleanup continues independently.\n\nIf-Match must carry THE session's current strong ETag: '*' and multi-member lists cannot pin a revision and are 400 INVALID_REQUEST; a weak or foreign tag is 412. The exact same-key idempotent replay is exempt from the If-Match requirement (it reauthorizes and returns the stored 200).","operationId":"uploads_delete","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"If-Match","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The resource was not found or is not visible to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"The mutation conflicts with current state (name/path, lifecycle).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match the resource's current revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"406":{"description":"Accept does not admit application/json (NOT_ACCEPTABLE) — every upload-control response is JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"Direct transfer is not fully configured/enabled (TRANSFER_DISABLED, no Retry-After), or the provider is transiently unavailable (TRANSFER_UNAVAILABLE, with Retry-After).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/uploads/{upload_id}/complete":{"post":{"tags":["uploads"],"summary":"Complete Upload","description":"Adopt the finalized scratch object and publish exactly one immutable\nartifact/version (§5.5/§6). Empty body; If-Match is not accepted — the\nversion precondition was captured at begin, and the transition fence\nplus idempotency serializes the session itself.","operationId":"uploads_complete","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}},"Location":{"description":"Canonical URL of the created resource.","schema":{"type":"string","format":"uri-reference"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"406":{"description":"Accept does not admit application/json (NOT_ACCEPTABLE) — every upload-control response is JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"Direct transfer is not fully configured/enabled (TRANSFER_DISABLED, no Retry-After), or the provider is transiently unavailable (TRANSFER_UNAVAILABLE, with Retry-After).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"200":{"description":"Idempotent replay (Idempotent-Replay: true): the retained non-secret session state or durable completion result. The transfer target is never reissued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"ETag":{"description":"Current strong entity tag.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:write"]}},"/v0/drives/{drive_id}/download-capabilities":{"post":{"tags":["downloads"],"summary":"Create Download Capability","description":"Mint one fresh, generation-pinned signed GET target for the current\nartifact head or one owned version. 200 only; every call reauthorizes\nand re-mints.\n\nStrict JSON body (charset utf-8): unknown/duplicate fields, unknown discriminators, and malformed ids are 400 INVALID_REQUEST. Idempotency-Key is FORBIDDEN on this operation (manifest idempotency_class: forbidden): a supplied key is rejected with 400 INVALID_REQUEST and no idempotency record is created — every request reauthorizes and mints a fresh signed target. The signed URL is a bearer capability after disclosure: it is bucket/object-, generation-, method-, semantic-query-, and expiry-bound only (no one-time-use or audience enforcement).","operationId":"download_capabilities_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadCapabilityOut"}}},"headers":{"Cache-Control":{"description":"Always no-store.","schema":{"type":"string"}},"Referrer-Policy":{"description":"Always no-referrer.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"Always nosniff — governs THIS JSON response only, never the later GCS response.","schema":{"type":"string"}},"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"406":{"description":"Accept does not admit application/json (NOT_ACCEPTABLE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"415":{"description":"The mint body must be application/json (UNSUPPORTED_MEDIA_TYPE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"Direct transfer is not fully configured/enabled (TRANSFER_DISABLED) or the direct download signer/configuration is unavailable (DOWNLOAD_SIGNING_UNAVAILABLE) — fail closed, no redirect/stream/viewer fallback, and no retry hint of their own (B8 owns retry policy). Retry-After appears only on the generic auth-unavailability 503.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["target"],"properties":{"target":{"description":"Exactly one download-target union member.","oneOf":[{"type":"object","additionalProperties":false,"required":["kind","artifact_id"],"properties":{"kind":{"type":"string","enum":["artifact"]},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$"}}},{"type":"object","additionalProperties":false,"required":["kind","artifact_id","version_id"],"properties":{"kind":{"type":"string","enum":["version"]},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$"},"version_id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$"}}}]}}}}}},"x-required-scopes":["content:read"]}},"/v0/drives/{drive_id}/artifacts/{artifact_id}/viewer-sessions":{"post":{"tags":["viewer-sessions"],"summary":"Create Viewer Session","description":"Mint a viewer session pinned to one immutable version. The response\ncarries the plaintext credential — the only response that does — and is\nnever cacheable.","operationId":"viewer_sessions_create","parameters":[{"name":"drive_id","in":"path","required":true,"schema":{"type":"string","title":"Drive Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"deprecated":true,"description":"Deprecated: redundant with the operation's `bearerAuth` security requirement, which is how a generated client should learn to authenticate. Scheduled for removal."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewerSessionCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewerSessionCreateOut"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"404":{"description":"The parent or target resource was not found or is not visible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"409":{"description":"A sibling already occupies the name/path, or the idempotency key was reused for a different request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"412":{"description":"If-Match did not match (copy/restore preconditions).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"428":{"description":"If-Match is required for this mutation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"503":{"description":"The private viewer is not enabled on this deployment (VIEWER_DISABLED — fail closed, no fallback, and no Retry-After: operator enablement has no honest client retry time), or token verification is temporarily unavailable (the generic auth-unavailability 503, which does carry Retry-After).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"401":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"RFC 6750 bearer authentication challenge.","schema":{"type":"string"}}}},"403":{"description":"Token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"integer","minimum":0}}}},"400":{"description":"Malformed request (invalid query parameter, cursor, or argument).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V0ErrorEnvelope"}}},"headers":{"X-Request-Id":{"description":"Request correlation identifier.","schema":{"type":"string"}}}}},"security":[{"bearerAuth":[]}],"x-required-scopes":["content:read"],"x-stability-level":"beta"}},"/.well-known/oauth-protected-resource":{"get":{"tags":["discovery"],"summary":"Protected-resource metadata (RFC 9728)","description":"Names the reset v0 surface as a protected resource and points clients at Hub — the only authorization server whose product tokens this deployment accepts.","operationId":"oauth_protected_resource","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Oauth Protected Resource"}}}}}}},"/health":{"get":{"summary":"Health","description":"Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks\nand any uptime monitor. Returns 200 only if the DB pool can serve a\ntrivial query; 503 otherwise so the orchestrator can pull the instance\nout of rotation.\n\nNOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure\nintercepts `/healthz` (legacy kubernetes-reserved path) and returns a\ngeneric 404 before traffic reaches Cloud Run — discovered the hard way\nduring the first prod deploy. Don't rename back.","operationId":"health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthOut"}}}},"503":{"description":"The database reachability probe failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthDegradedResponse"}}}}}}}},"components":{"schemas":{"ArtifactCopyIn":{"properties":{"destination_drive_id":{"anyOf":[{"type":"string","pattern":"^drv_[a-f0-9]{16}$"},{"type":"null"}],"title":"Destination Drive Id"},"destination_parent_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Destination Parent Id"},"destination_name":{"type":"string","maxLength":255,"minLength":1,"title":"Destination Name"},"version_id":{"anyOf":[{"type":"string","pattern":"^ver_[a-f0-9]{16}$"},{"type":"null"}],"title":"Version Id"}},"additionalProperties":false,"type":"object","required":["destination_parent_id","destination_name"],"title":"ArtifactCopyIn","description":"POST /v0/drives/{id}/artifacts/{artifact_id}/copy body.\n\n``destination_drive_id`` must equal the source drive (or be absent) —\ncross-drive copy is out of v0 scope and rejected."},"ArtifactListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ArtifactOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"ArtifactListOut"},"ArtifactOut":{"properties":{"id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"parent_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Parent Id"},"name":{"type":"string","title":"Name"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"content_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Preview"},"labels":{"items":{"type":"string"},"type":"array","title":"Labels"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"head_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Head Version Id"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"state":{"type":"string","enum":["active","deleted"],"title":"State"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"effective_visibility":{"type":"string","enum":["public","shared","private"],"title":"Effective Visibility","description":"Server-computed exposure summary, resolved over the artifact's live grants, its whole folder ancestry, and the drive. 'public' when any live grant has principal_type 'public'; otherwise 'shared' when a live grant names a principal other than the drive's creator; otherwise 'private'. Describes exposure, NOT the caller's own access."}},"type":"object","required":["id","drive_id","parent_id","name","content_type","content_preview","labels","metadata","head_version_id","revision","state","created_at","updated_at","deleted_at","effective_visibility"],"title":"ArtifactOut"},"ArtifactUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"parent_id":{"anyOf":[{"type":"string","pattern":"^fld_[a-f0-9]{16}$"},{"type":"null"}],"title":"Parent Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"}},"additionalProperties":false,"type":"object","title":"ArtifactUpdateIn","description":"PATCH /v0/drives/{id}/artifacts/{artifact_id} body — at least one\nfield is required."},"ChangeActorOut":{"properties":{"type":{"type":"string","enum":["agent","user","system"],"title":"Type"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"}},"type":"object","required":["type","id"],"title":"ChangeActorOut"},"ChangeOut":{"properties":{"id":{"type":"string","pattern":"^chg_[a-f0-9]{16}$","title":"Id"},"change_set_id":{"type":"string","title":"Change Set Id"},"type":{"type":"string","title":"Type"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"actor":{"$ref":"#/components/schemas/ChangeActorOut"},"resource":{"$ref":"#/components/schemas/ChangeResourceOut"},"previous_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Revision"},"revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["id","change_set_id","type","drive_id","actor","resource","previous_revision","revision","occurred_at","data"],"title":"ChangeOut"},"ChangePageOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChangeOut"},"type":"array","title":"Items"},"next_cursor":{"type":"string","title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["items","next_cursor","has_more"],"title":"ChangePageOut"},"ChangeResourceOut":{"properties":{"type":{"type":"string","enum":["drive","folder","artifact"],"title":"Type"},"id":{"type":"string","title":"Id"}},"type":"object","required":["type","id"],"title":"ChangeResourceOut"},"DownloadCapabilityOut":{"properties":{"download":{"$ref":"#/components/schemas/DownloadOut"}},"additionalProperties":false,"type":"object","required":["download"],"title":"DownloadCapabilityOut","description":"The §5.7 mint response — a capability computation, not a stored\nresource: 200 only, freshly signed on every call."},"DownloadOut":{"properties":{"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"},"version_id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$","title":"Version Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"target":{"$ref":"#/components/schemas/DownloadTargetOut"}},"additionalProperties":false,"type":"object","required":["artifact_id","version_id","expires_at","target"],"title":"DownloadOut"},"DownloadTargetOut":{"properties":{"url":{"type":"string","title":"Url"},"method":{"type":"string","const":"GET","title":"Method"},"required_headers":{"additionalProperties":false,"type":"object","maxProperties":0,"title":"Required Headers"},"content_disposition":{"type":"string","title":"Content Disposition"}},"additionalProperties":false,"type":"object","required":["url","method","required_headers","content_disposition"],"title":"DownloadTargetOut","description":"The one signed, generation-pinned direct GET target (B3 §5.7).\nSecret material: present only in the fresh mint response, never in any\nstored record, replay, or log. CLOSED schema on purpose: Packet 5 and\ngenerated clients must not learn a broader security-sensitive target\ncontract than the wire actually carries."},"DriveCreateIn":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["name"],"title":"DriveCreateIn","description":"POST /v0/drives body."},"DriveListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DriveOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"DriveListOut"},"DriveOut":{"properties":{"id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"name":{"type":"string","title":"Name"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"root_folder_id":{"type":"string","title":"Root Folder Id"},"storage_bytes":{"type":"integer","title":"Storage Bytes"},"retrieval_bytes":{"type":"integer","title":"Retrieval Bytes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"state":{"type":"string","enum":["active","deleted"],"title":"State"}},"type":"object","required":["id","workspace_id","created_by","name","metadata","revision","root_folder_id","storage_bytes","retrieval_bytes","created_at","updated_at","deleted_at","state"],"title":"DriveOut"},"DriveUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"additionalProperties":false,"type":"object","title":"DriveUpdateIn","description":"PATCH /v0/drives/{id} body — at least one field is required."},"DriveUsageOut":{"properties":{"storage_bytes":{"type":"integer","title":"Storage Bytes"},"retrieval_bytes":{"type":"integer","title":"Retrieval Bytes"}},"type":"object","required":["storage_bytes","retrieval_bytes"],"title":"DriveUsageOut"},"FolderCascadeOut":{"properties":{"folder":{"$ref":"#/components/schemas/FolderOut"},"cascade":{"additionalProperties":{"type":"integer"},"type":"object","title":"Cascade"}},"type":"object","required":["folder","cascade"],"title":"FolderCascadeOut"},"FolderCopyIn":{"properties":{"destination_drive_id":{"anyOf":[{"type":"string","pattern":"^drv_[a-f0-9]{16}$"},{"type":"null"}],"title":"Destination Drive Id"},"destination_parent_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Destination Parent Id"},"destination_name":{"type":"string","maxLength":255,"minLength":1,"title":"Destination Name"}},"additionalProperties":false,"type":"object","required":["destination_parent_id","destination_name"],"title":"FolderCopyIn","description":"POST /v0/drives/{id}/folders/{folder_id}/copy body.\n\n``destination_drive_id`` must equal the source drive (or be absent) —\ncross-drive copy is out of v0 scope and rejected."},"FolderCreateIn":{"properties":{"parent_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Parent Id"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["parent_id","name"],"title":"FolderCreateIn","description":"POST /v0/drives/{id}/folders body."},"FolderListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FolderOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"FolderListOut"},"FolderOut":{"properties":{"id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"state":{"type":"string","enum":["active","deleted"],"title":"State"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"}},"type":"object","required":["id","drive_id","parent_id","name","metadata","revision","state","created_at","updated_at","deleted_at"],"title":"FolderOut"},"FolderUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"parent_id":{"anyOf":[{"type":"string","pattern":"^fld_[a-f0-9]{16}$"},{"type":"null"}],"title":"Parent Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"additionalProperties":false,"type":"object","title":"FolderUpdateIn","description":"PATCH /v0/drives/{id}/folders/{folder_id} body — at least one field is\nrequired."},"GrantCreateIn":{"properties":{"principal_type":{"type":"string","enum":["agent","user","workspace","public"],"title":"Principal Type"},"principal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Principal Id","description":"Required for `agent`, `user`, and `workspace`; omitted only for `public`. For `agent` and `user` it is checked against that type's id prefix (`tcagt_` / `tcusr_`) and a mismatch is `422 VALIDATION_ERROR`. The prefix is all AgentDrive asserts: these ids are minted by Hub, so their full shape is not AgentDrive's to enforce, and a well-formed id naming a principal that does not exist — or belongs to another workspace — is accepted here and simply never matches a token. The rule is conditional on `principal_type`, so it is enforced at the boundary rather than expressible as one JSON Schema `pattern`."},"resource_type":{"type":"string","enum":["drive","folder","artifact"],"title":"Resource Type"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"role":{"type":"string","enum":["viewer","editor","manager"],"title":"Role"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"additionalProperties":false,"type":"object","required":["principal_type","resource_type","resource_id","role"],"title":"GrantCreateIn","description":"POST /v0/drives/{id}/grants body."},"GrantListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GrantOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"GrantListOut"},"GrantOut":{"properties":{"id":{"type":"string","pattern":"^grn_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"resource_type":{"type":"string","enum":["drive","folder","artifact"],"title":"Resource Type"},"resource_id":{"type":"string","title":"Resource Id"},"principal_type":{"type":"string","enum":["agent","user","workspace","public"],"title":"Principal Type"},"principal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Principal Id"},"role":{"type":"string","enum":["viewer","editor","manager"],"title":"Role"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"state":{"type":"string","enum":["active","revoked","expired"],"title":"State"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","drive_id","resource_type","resource_id","principal_type","principal_id","role","revision","state","expires_at","revoked_at","created_at"],"title":"GrantOut"},"GrantUpdateIn":{"properties":{"role":{"anyOf":[{"type":"string","enum":["viewer","editor","manager"]},{"type":"null"}],"title":"Role"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"additionalProperties":false,"type":"object","title":"GrantUpdateIn","description":"PATCH /v0/drives/{id}/grants/{grant_id} body — at least one field is\nrequired. An explicit ``expires_at: null`` clears the expiry; omitting it\nleaves it unchanged."},"HealthDegradedDetail":{"properties":{"status":{"type":"string","const":"degraded","title":"Status"},"error":{"type":"string","title":"Error"}},"type":"object","required":["status","error"],"title":"HealthDegradedDetail"},"HealthDegradedResponse":{"properties":{"detail":{"$ref":"#/components/schemas/HealthDegradedDetail"}},"type":"object","required":["detail"],"title":"HealthDegradedResponse","description":"Legacy health-probe failure shape.\n\nHealth predates the `/v0` error envelope and is consumed by load\nbalancers. PR 1 documents the wire shape without changing it; convergence\non the canonical API envelope is a separately reviewed compatibility\ndecision."},"HealthOut":{"properties":{"status":{"type":"string","const":"ok","title":"Status"}},"type":"object","required":["status"],"title":"HealthOut"},"SearchHitOut":{"properties":{"id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"name":{"type":"string","title":"Name"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"rank":{"type":"number","title":"Rank"},"snippet":{"type":"string","title":"Snippet","description":"HTML-safe highlighted excerpt. The ONLY markup it may contain is the server's own <mark>...</mark> highlight pair; artifact content is entity-escaped, so this may be rendered as HTML."},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","drive_id","parent_id","name","version_id","rank","snippet","content_type","updated_at"],"title":"SearchHitOut"},"SearchPageOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SearchHitOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"SearchPageOut"},"ShareCreateIn":{"properties":{"resource_type":{"type":"string","enum":["artifact","artifact_version","folder"],"title":"Resource Type"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"additionalProperties":false,"type":"object","required":["resource_type","resource_id"],"title":"ShareCreateIn","description":"POST /v0/drives/{id}/shares body."},"ShareCreateOut":{"properties":{"id":{"type":"string","pattern":"^shr_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"resource_type":{"type":"string","enum":["artifact","artifact_version","folder"],"title":"Resource Type"},"resource_id":{"type":"string","title":"Resource Id"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"state":{"type":"string","enum":["active","revoked","expired"],"title":"State"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"rotated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rotated At"},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret","description":"Plaintext share secret. Present only on first execution of a create or rotate; null on idempotent replay — rotate to obtain a new secret."}},"type":"object","required":["id","drive_id","resource_type","resource_id","created_by","revision","state","expires_at","revoked_at","created_at","rotated_at"],"title":"ShareCreateOut","description":"The create/rotate response — the ONLY response carrying the plaintext\nsecret."},"ShareListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ShareOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"ShareListOut"},"ShareOut":{"properties":{"id":{"type":"string","pattern":"^shr_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"resource_type":{"type":"string","enum":["artifact","artifact_version","folder"],"title":"Resource Type"},"resource_id":{"type":"string","title":"Resource Id"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"},"state":{"type":"string","enum":["active","revoked","expired"],"title":"State"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"rotated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rotated At"}},"type":"object","required":["id","drive_id","resource_type","resource_id","created_by","revision","state","expires_at","revoked_at","created_at","rotated_at"],"title":"ShareOut"},"UploadBeginOut":{"properties":{"upload":{"$ref":"#/components/schemas/UploadWithTransferOut"}},"type":"object","required":["upload"],"title":"UploadBeginOut","description":"The one 201 begin response — the only shape carrying ``transfer``."},"UploadChecksumOut":{"properties":{"algorithm":{"type":"string","const":"crc32c","title":"Algorithm"},"value":{"type":"string","pattern":"^[A-Za-z0-9+/]{6}==$","title":"Value"}},"type":"object","required":["algorithm","value"],"title":"UploadChecksumOut"},"UploadChunksOut":{"properties":{"method":{"type":"string","const":"PUT","title":"Method"},"required_headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Required Headers"}},"additionalProperties":false,"type":"object","required":["method","required_headers"],"title":"UploadChunksOut","description":"How to stream chunks against the session URI the initiation's\n``Location`` disclosed: the unchanged ``gcs-xml-resumable`` protocol\n(PUT + ``Content-Range``, 308/``Range`` resume)."},"UploadCleanupOut":{"properties":{"state":{"type":"string","enum":["none","pending","quarantined","deleting","cleaned","blocked"],"title":"State"}},"type":"object","required":["state"],"title":"UploadCleanupOut"},"UploadContentOut":{"properties":{"size_bytes":{"type":"integer","minimum":0.0,"title":"Size Bytes"},"media_type":{"type":"string","title":"Media Type"},"checksum":{"$ref":"#/components/schemas/UploadChecksumOut"}},"type":"object","required":["size_bytes","media_type","checksum"],"title":"UploadContentOut"},"UploadFailureOut":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"UploadFailureOut"},"UploadInitiationOut":{"properties":{"url":{"type":"string","title":"Url"},"method":{"type":"string","const":"POST","title":"Method"},"required_headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Required Headers"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"additionalProperties":false,"type":"object","required":["url","method","required_headers","expires_at"],"title":"UploadInitiationOut","description":"The V4-signed XML resumable initiation target (§5.6 as amended\n2026-08-20). Secret material: the URL plus the exact signed header\nvalues. The client POSTs it with EXACTLY ``required_headers`` and an\nempty body; the 201 response's ``Location`` header is the resumable\nsession URI. CLOSED schema on purpose — a generated client must not\nlearn a broader security-sensitive target contract than the wire\ncarries."},"UploadOut":{"properties":{"id":{"type":"string","pattern":"^upld_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"state":{"type":"string","enum":["preparing","active","completing","cancelling","completed","cancelled","expired","rejected"],"title":"State"},"target":{"oneOf":[{"$ref":"#/components/schemas/UploadTargetArtifactOut"},{"$ref":"#/components/schemas/UploadTargetVersionOut"}],"title":"Target","discriminator":{"propertyName":"kind","mapping":{"artifact":"#/components/schemas/UploadTargetArtifactOut","version":"#/components/schemas/UploadTargetVersionOut"}}},"content":{"$ref":"#/components/schemas/UploadContentOut"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"target_disclosed":{"type":"boolean","title":"Target Disclosed"},"restart_required":{"type":"boolean","title":"Restart Required"},"result":{"anyOf":[{"$ref":"#/components/schemas/UploadResultOut"},{"type":"null"}]},"failure":{"anyOf":[{"$ref":"#/components/schemas/UploadFailureOut"},{"type":"null"}]},"cleanup":{"$ref":"#/components/schemas/UploadCleanupOut"}},"type":"object","required":["id","drive_id","state","target","content","expires_at","target_disclosed","restart_required","result","failure","cleanup"],"title":"UploadOut"},"UploadResultOut":{"properties":{"kind":{"type":"string","enum":["artifact","version"],"title":"Kind"},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"},"version_id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$","title":"Version Id"},"revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Revision"}},"type":"object","required":["kind","artifact_id","version_id","revision"],"title":"UploadResultOut"},"UploadSessionOut":{"properties":{"upload":{"$ref":"#/components/schemas/UploadOut"}},"type":"object","required":["upload"],"title":"UploadSessionOut","description":"The non-secret session representation (status, replay, cancel,\ncomplete). Deliberately has NO transfer field — it is structurally\nincapable of carrying the bearer target."},"UploadTargetArtifactOut":{"properties":{"kind":{"type":"string","const":"artifact","title":"Kind"},"parent_folder_id":{"type":"string","pattern":"^fld_[a-f0-9]{16}$","title":"Parent Folder Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","parent_folder_id","name"],"title":"UploadTargetArtifactOut"},"UploadTargetVersionOut":{"properties":{"kind":{"type":"string","const":"version","title":"Kind"},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"}},"type":"object","required":["kind","artifact_id"],"title":"UploadTargetVersionOut"},"UploadTransferOut":{"properties":{"chunk_protocol":{"type":"string","const":"gcs-xml-resumable","title":"Chunk Protocol"},"initiation":{"$ref":"#/components/schemas/UploadInitiationOut"},"chunks":{"$ref":"#/components/schemas/UploadChunksOut"}},"type":"object","required":["chunk_protocol","initiation","chunks"],"title":"UploadTransferOut","description":"The one-time external transfer disclosure (B3 §5.2, amended\n2026-08-20 to the two-step browser-initiated shape). Secret material:\npresent ONLY in the initial successful begin response, never in\nstatus, replay, or any stored record."},"UploadWithTransferOut":{"properties":{"id":{"type":"string","pattern":"^upld_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"state":{"type":"string","enum":["preparing","active","completing","cancelling","completed","cancelled","expired","rejected"],"title":"State"},"target":{"oneOf":[{"$ref":"#/components/schemas/UploadTargetArtifactOut"},{"$ref":"#/components/schemas/UploadTargetVersionOut"}],"title":"Target","discriminator":{"propertyName":"kind","mapping":{"artifact":"#/components/schemas/UploadTargetArtifactOut","version":"#/components/schemas/UploadTargetVersionOut"}}},"content":{"$ref":"#/components/schemas/UploadContentOut"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"target_disclosed":{"type":"boolean","title":"Target Disclosed"},"restart_required":{"type":"boolean","title":"Restart Required"},"result":{"anyOf":[{"$ref":"#/components/schemas/UploadResultOut"},{"type":"null"}]},"failure":{"anyOf":[{"$ref":"#/components/schemas/UploadFailureOut"},{"type":"null"}]},"cleanup":{"$ref":"#/components/schemas/UploadCleanupOut"},"transfer":{"$ref":"#/components/schemas/UploadTransferOut"}},"type":"object","required":["id","drive_id","state","target","content","expires_at","target_disclosed","restart_required","result","failure","cleanup","transfer"],"title":"UploadWithTransferOut"},"VersionCreatedOut":{"properties":{"id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$","title":"Id"},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"},"version_number":{"type":"integer","minimum":1.0,"title":"Version Number"},"parent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Version Id"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","minimum":0.0,"title":"Size Bytes"},"hash":{"type":"string","title":"Hash"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"artifact_revision":{"type":"string","pattern":"^rev_[a-f0-9]{16}$","title":"Artifact Revision","description":"The artifact's revision after this version became head — the If-Match value for the next mutation."}},"type":"object","required":["id","artifact_id","version_number","parent_version_id","content_type","size_bytes","hash","created_by","created_at","artifact_revision"],"title":"VersionCreatedOut","description":"The append/restore response — a version plus the artifact's new\nrevision, which the version-creating 201 rotates."},"VersionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VersionOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"VersionListOut"},"VersionOut":{"properties":{"id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$","title":"Id"},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"},"version_number":{"type":"integer","minimum":1.0,"title":"Version Number"},"parent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Version Id"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","minimum":0.0,"title":"Size Bytes"},"hash":{"type":"string","title":"Hash"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","artifact_id","version_number","parent_version_id","content_type","size_bytes","hash","created_by","created_at"],"title":"VersionOut"},"ViewerSessionCreateIn":{"properties":{"version_id":{"anyOf":[{"type":"string","pattern":"^ver_[a-f0-9]{16}$"},{"type":"null"}],"title":"Version Id"}},"additionalProperties":false,"type":"object","title":"ViewerSessionCreateIn","description":"POST /v0/drives/{id}/artifacts/{id}/viewer-sessions body.\n\n``version_id`` omitted (or null) pins the artifact's CURRENT head at\nmint time; the session never follows the head afterwards."},"ViewerSessionCreateOut":{"properties":{"id":{"type":"string","pattern":"^vwr_[a-f0-9]{16}$","title":"Id"},"drive_id":{"type":"string","pattern":"^drv_[a-f0-9]{16}$","title":"Drive Id"},"artifact_id":{"type":"string","pattern":"^art_[a-f0-9]{16}$","title":"Artifact Id"},"version_id":{"type":"string","pattern":"^ver_[a-f0-9]{16}$","title":"Version Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expires_in":{"type":"integer","title":"Expires In","description":"Seconds until the session expires, from mint time."},"credential":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential","description":"Plaintext viewer credential. Present only on first execution of a mint; null on idempotent replay — mint a new session with a fresh Idempotency-Key to obtain a credential."}},"type":"object","required":["id","drive_id","artifact_id","version_id","expires_at","created_at","expires_in"],"title":"ViewerSessionCreateOut","description":"The mint response — the ONLY response carrying the plaintext viewer\ncredential. The credential authorizes the isolated viewer host's\n`/view/doc` and `/view/content` for this one pinned version, via an\nAuthorization header only — it must never be placed in a URL, cookie,\nor persistent storage."},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code (see the error-catalog).","enum":["ARTIFACT_NOT_FOUND","ARTIFACT_PATH_CONFLICT","ARTIFACT_TOO_LARGE","AUTHENTICATION_REQUIRED","AUTH_UNAVAILABLE","BAD_REQUEST","CHANGE_CURSOR_EXPIRED","CHECKSUM_MISMATCH","CONFLICT","DOWNLOAD_SIGNING_UNAVAILABLE","DRIVE_LIMIT_EXCEEDED","DRIVE_NOT_FOUND","FOLDER_NOT_FOUND","FOLDER_PATH_CONFLICT","FOLDER_RECURSIVE_REQUIRED","GRANT_CONFLICT","GRANT_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","IDEMPOTENCY_KEY_REQUIRED","INTERNAL_ERROR","INVALID_ARGUMENT","INVALID_CURSOR","INVALID_PARAMETER","INVALID_QUERY","INVALID_REQUEST","METHOD_NOT_ALLOWED","NAME_CONFLICT","NOT_ACCEPTABLE","NOT_AUTHORIZED","NOT_FOUND","OBJECT_METADATA_MISMATCH","OBJECT_SIZE_MISMATCH","PAYLOAD_TOO_LARGE","PERMISSION_DENIED","PRECONDITION_FAILED","PRECONDITION_REQUIRED","RATE_LIMITED","SEARCH_MODE_UNAVAILABLE","SHARE_NOT_FOUND","SUBTREE_TOO_LARGE","TRANSFER_DISABLED","TRANSFER_LIMIT_EXCEEDED","TRANSFER_UNAVAILABLE","UNSUPPORTED_MEDIA_TYPE","UPLOAD_ALREADY_COMPLETED","UPLOAD_BUSY","UPLOAD_EXPIRED","UPLOAD_INCOMPLETE","UPLOAD_NOT_COMPLETABLE","VALIDATION_ERROR","VERSION_NOT_FOUND","VIEWER_DISABLED","VIEWER_SESSION_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","description":"Error-code-specific context (optional)."}},"additionalProperties":true}}},"ValidationErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"object","properties":{"location":{"type":"string"},"reason":{"type":"string"}}}}}}},"additionalProperties":true}}},"V0ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code (see the error-catalog).","enum":["ARTIFACT_NOT_FOUND","ARTIFACT_PATH_CONFLICT","ARTIFACT_TOO_LARGE","AUTHENTICATION_REQUIRED","AUTH_UNAVAILABLE","BAD_REQUEST","CHANGE_CURSOR_EXPIRED","CHECKSUM_MISMATCH","CONFLICT","DOWNLOAD_SIGNING_UNAVAILABLE","DRIVE_LIMIT_EXCEEDED","DRIVE_NOT_FOUND","FOLDER_NOT_FOUND","FOLDER_PATH_CONFLICT","FOLDER_RECURSIVE_REQUIRED","GRANT_CONFLICT","GRANT_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","IDEMPOTENCY_KEY_REQUIRED","INTERNAL_ERROR","INVALID_ARGUMENT","INVALID_CURSOR","INVALID_PARAMETER","INVALID_QUERY","INVALID_REQUEST","METHOD_NOT_ALLOWED","NAME_CONFLICT","NOT_ACCEPTABLE","NOT_AUTHORIZED","NOT_FOUND","OBJECT_METADATA_MISMATCH","OBJECT_SIZE_MISMATCH","PAYLOAD_TOO_LARGE","PERMISSION_DENIED","PRECONDITION_FAILED","PRECONDITION_REQUIRED","RATE_LIMITED","SEARCH_MODE_UNAVAILABLE","SHARE_NOT_FOUND","SUBTREE_TOO_LARGE","TRANSFER_DISABLED","TRANSFER_LIMIT_EXCEEDED","TRANSFER_UNAVAILABLE","UNSUPPORTED_MEDIA_TYPE","UPLOAD_ALREADY_COMPLETED","UPLOAD_BUSY","UPLOAD_EXPIRED","UPLOAD_INCOMPLETE","UPLOAD_NOT_COMPLETABLE","VALIDATION_ERROR","VERSION_NOT_FOUND","VIEWER_DISABLED","VIEWER_SESSION_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","description":"Error-code-specific context (optional)."}},"additionalProperties":true}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Hub-issued bearer token. Scopes: drives:*, content:*, sharing:*, changes:read, usage:read. See the OAuth-protected-resource discovery document (RFC 9728)."}}},"x-agentdrive-compatibility-policy":1}